ATLAS Offline Software
AuxElementComplete.icc
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // $Id: AuxElementComplete.icc 581165 2014-02-03 10:42:54Z krasznaa $
6 /**
7  * @file AthContainers/AuxElementComplete.icc
8  * @author scott snyder <snyder@bnl.gov>
9  * @date Oct, 2013
10  * @brief Wrapper to automatically create a private store for an element.
11  */
12 
13 
14 namespace SG {
15 
16 
17 /**
18  * @brief Default constructor.
19  *
20  * A private store is created for this object.
21  */
22 template <class T>
23 inline
24 AuxElementComplete<T>::AuxElementComplete()
25 {
26  this->makePrivateStore();
27 }
28 
29 
30 /**
31  * @brief Generic constructor.
32  * @param u1 Constructor argument.
33  *
34  * A private store is created for this object.
35  */
36 template <class T>
37 template <class U1>
38 inline
39 AuxElementComplete<T>::AuxElementComplete (const U1& u1)
40  : T(u1)
41 {
42  this->makePrivateStore(u1);
43 }
44 
45 
46 /**
47  * @brief Copy constructor.
48  * @param other The object being copied.
49  *
50  * A private store is created for this object.
51  */
52 template <class T>
53 inline
54 AuxElementComplete<T>::AuxElementComplete (const AuxElementComplete& other)
55  : T(other)
56 {
57  this->makePrivateStore(other);
58 }
59 
60 
61 } // namespace SG