ATLAS Offline Software
|
Traits class for representing derivation. More...
#include <type_traits>
Go to the source code of this file.
Classes | |
struct | SG::Virtual< T > |
Wrapper to indicate virtual derivation. More... | |
struct | SG::BaseType< T > |
Helper metafunction to get base class types. More... | |
struct | SG::BaseType< Virtual< T > > |
struct | SG::NoBase |
Marker to indicate a nonexistent base class. More... | |
struct | SG::BaseList< T > |
Represent a list of base classes. More... | |
struct | SG::Bases< T > |
Traits class to hold derivation information. More... | |
struct | SG::BaseList< BASE, REST... > |
Represent a non-empty list of base classes. More... | |
Namespaces | |
SG | |
Forward declaration. | |
Typedefs | |
template<class T > | |
using | SG::BaseType_t = typename SG::BaseType< T >::type |
Traits class for representing derivation.
T
, its base classes are available via the traits class defined here, as Bases<T>::bases
. This will be an instantiation of BaseList
, defined below, which provides a foreach_
function to iterate over the base classes. [<CENSORED> Qt defines ‘foreach’ as a macro, so we can't use that name!]For this to work, the Bases
class must be specialized for each class T
. This is usually done using the SG_BASES
macro defined in BaseInfo.h.
Definition in file Bases.h.