ATLAS Offline Software
Classes | Namespaces | Typedefs | Functions
PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/Types.h File Reference

A simple tuple of multiple types. More...

#include <typeinfo>
#include <cstdlib>
#include <tuple>
Include dependency graph for PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/Types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  D3PD::NoType
 Placeholder for empty type. More...
 
struct  D3PD::WrapType< T >
 Helper so that Types<> will be an empty class. More...
 
struct  D3PD::SelectType< T, N >
 Select one type out of the tuple. More...
 
struct  D3PD::SelectType< Types< TYPES... >, N >
 SelectType used of Types. More...
 
struct  D3PD::ButFirstType< T >
 
struct  D3PD::ButFirstType< Types< T0, TYPES... > >
 

Namespaces

 D3PD
 Block filler tool for noisy FEB information.
 

Typedefs

template<class... TYPES>
using D3PD::Types = std::tuple< WrapType< TYPES >... >
 A simple tuple of multiple types. More...
 
template<class T >
using D3PD::ButFirstType_t = typename ButFirstType< T >::type
 

Functions

template<class T0 >
const std::type_info & D3PD::multiTypeInfo (Types< T0 > *, size_t which)
 Return one type_info from a tuple. More...
 
template<class T0 , class... TYPES>
const std::type_info & D3PD::multiTypeInfo (Types< T0, TYPES... > *, size_t which)
 
template<class T >
const std::type_info & D3PD::multiTypeInfo (T *, size_t)
 

Detailed Description

A simple tuple of multiple types.

Author
scott snyder snyde.nosp@m.r@bn.nosp@m.l.gov
Date
Jun, 2012 This is used when declaring tools that can take one of a set of types. For example,
BlockFillerTool<Types<Obj1, Obj2> >

declares a block filler that can take as input either Obj1 or Obj2. (Note: the choice is made during configuration, not dynamically.)

Definition in file PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/Types.h.