/cvmfs/atlas.cern.ch/repo/sw/ASG/AnalysisBase/2.4.28/AthContainers/AthContainers/tools/DVLEltBaseInfo.icc File Reference

Set up BaseInfo information for DataVector/DataList elements. More...

Classes

struct  DVLEltBase_init< B >
struct  DVLEltBase_init< DataModel_detail::NoBase >
struct  DVLEltBase_init< VirtBases< B1, B2, B3 > >
struct  DVLEltBase_init< DVLTYPE< B > >
struct  RegisterDVLEltBaseInit< T >
struct  DVLEltBaseInit< T >

Defines

#define DVLPASTE1(y, x)   y##x
#define DVLPASTE2(y, x)   DVLPASTE1(y,x)
#define DVLPASTE(x)   DVLPASTE2(DVLTYPE,x)

Detailed Description

Set up BaseInfo information for DataVector/DataList elements.

Author:
scott snyder
Date:
Jul 2009 When we have a DATAVECTOR_BASE(D,B) macro, we want to record the D, B inheritance relation in SG::BaseInfo. We can't just invoke SG_BASE for this from DATAVECTOR_BASE because there may be duplicates, and SG_BASE won't compile in that case. But BaseInfo has a deferred initialization mechanism, so we use that: we arrange for an appropriate initializer be added to the list. We also need to walk the DV/DL type information structures rather then the BaseInfo ones.

This is common code to be used for both DataVector and DataList. It should be included inside of the appropriate detail namespace. In addition, the macro DVLTYPE should be defined as either DataVector or DataList. Then, the *_BASE macros should explicitly instantiate the template *_detailDVLEltBaseInit<T>.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 15 Apr 2017 for RootCore Packages by  doxygen 1.6.1