ATLAS Offline Software
Classes | Namespaces
Bases.h File Reference

Traits class for representing derivation. More...

#include <type_traits>
Include dependency graph for Bases.h:
This graph shows which files directly or indirectly include this file:

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.
 

Detailed Description

Traits class for representing derivation.

Author
scott snyder snyde.nosp@m.r@bn.nosp@m.l.gov
Date
Aug, 2020 For a class 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.