ATLAS Offline Software
Loading...
Searching...
No Matches
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  Virtual< T >
struct  BaseType< T >
struct  BaseType< Virtual< T > >
struct  NoBase
 Marker to indicate a nonexistent base class. More...
struct  BaseList< T >
 Represent a list of base classes. More...
struct  Bases< T >
 Traits class to hold derivation information. More...
struct  BaseList< BASE, REST... >
 Represent a non-empty list of base classes. More...

Typedefs

template<class T>
using BaseType_t = typename SG::BaseType<T>::type

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. */

namespace SG {

/**

Wrapper to indicate virtual derivation. Virtual<T> will mean that derivation from T is virtual.

Definition in file Bases.h.

Typedef Documentation

◆ BaseType_t

template<class T>
using BaseType_t = typename SG::BaseType<T>::type

Definition at line 62 of file Bases.h.