00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_TypeInfo_H
00010 #define ThePEG_TypeInfo_H
00011
00012 #include "DescriptionList.h"
00013
00014 namespace ThePEG {
00015
00019 struct TypeInfo {
00020
00022 template <typename T>
00023 static string name(const T &)
00024 {
00025 const ClassDescriptionBase * cd = DescriptionList::find(typeid(T));
00026 if ( cd ) return cd->name();
00027 return "**** CLASS NOT REGISTERED ****";
00028 }
00029
00031 template <typename T>
00032 static int version(const T &)
00033 {
00034 const ClassDescriptionBase * cd = DescriptionList::find(typeid(T));
00035 if ( cd ) return cd->version();
00036 return -1;
00037 }
00038
00039 };
00040
00041 }
00042
00043 #endif