33#ifndef ATHCONTAINERSINTERFACES_AUXSTORE_TRAITS_H
34#define ATHCONTAINERSINTERFACES_AUXSTORE_TRAITS_H
42# include <type_traits>
59 typedef std::true_type
flag;
64 static const std::string name (
"SG::IAuxStore");
71 static const std::string name (
"SG::IConstAuxStore");
80 typedef std::false_type
flag;
85 static const std::string name (
"SG::NoAuxStore");
92 static const std::string name (
"SG::NoAuxStore");
100template <
class DOBJ,
class FLAG_>
103 typedef typename std::conditional<
104 std::is_base_of<IAuxElement, DOBJ>::value,
121 typename
std::is_base_of<
122 IAuxElement, typename DOBJ::base_value_type>
::type>
Flag that a class may have auxiliary data associated with it.
Interface for non-const operations on an auxiliary store.
Interface for const operations on an auxiliary store.
Interface for non-const operations on an auxiliary store.
Interface for const operations on an auxiliary store.
Mark that there's no associated AuxStore class.
AuxStore_traits_AuxDefault type
Helper for the case where DOBJ::base_value_type does not derive from SG::IAuxElement.
std::conditional< std::is_base_of< IAuxElement, DOBJ >::value, AuxStore_traits_AuxDefault, AuxStore_traits_NoAuxDefault >::type type
Default traits values for aux data case.
static const std::string & const_typeName()
static const std::string & typeName()
IConstAuxStore const_type
Default traits values for no-aux data case.
static const std::string & const_typeName()
static const std::string & typeName()
Associate AuxStore classes with EDM container classes (default implementation).