1 #ifndef FWCore_Utilities_typelookup_h
2 #define FWCore_Utilities_typelookup_h
58 std::pair<const char*, const std::type_info*>
findType(
const char* iClassName);
77 NameRegistrar(
const char* iTypeName,
const std::type_info& iInfo);
83 #define TYPELOOKUP_METHODS(Tname) \
84 namespace edm { namespace typelookup { \
85 template<> const char* className< Tname >() \
87 template<> const std::type_info& classTypeInfo< Tname > () \
88 { return typeid( Tname ); } } }
91 #define EDM_TYPELOOKUP_SYM(x,y) EDM_TYPELOOKUP_SYM2(x,y)
92 #define EDM_TYPELOOKUP_SYM2(x,y) x ## y
94 #define DEFINE_TYPELOOKUP_REGISTRATION(type) \
95 static edm::typelookup::NameRegistrar EDM_TYPELOOKUP_SYM(s_register , __LINE__ ) (edm::typelookup::className<type>(),typeid(type))
97 #define TYPELOOKUP_DATA_REG(_dataclass_) TYPELOOKUP_METHODS(_dataclass_) \
98 DEFINE_TYPELOOKUP_REGISTRATION(_dataclass_)
std::pair< const char *, const std::type_info * > findType(const char *iClassName)
NameRegistrar(const char *iTypeName, const std::type_info &iInfo)
const std::type_info & classTypeInfo()