diff --git a/CommonTools/Utils/interface/StringToEnumValue.h b/CommonTools/Utils/interface/StringToEnumValue.h index 0fb35f664bd8e..3c26c53647ff1 100644 --- a/CommonTools/Utils/interface/StringToEnumValue.h +++ b/CommonTools/Utils/interface/StringToEnumValue.h @@ -3,7 +3,9 @@ #include "FWCore/Utilities/interface/Exception.h" -#include "FWCore/Utilities/interface/TypeWithDict.h" +#include "TEnum.h" +#include "TEnumConstant.h" +#include #include #include #include @@ -21,10 +23,16 @@ \date 04 Mar 2011 */ -template -int StringToEnumValue(const std::string & enumMemberName){ - edm::TypeWithDict dataType(typeid(MyType), kIsEnum); - return dataType.stringToEnumValue(enumMemberName); +template +int StringToEnumValue(std::string const& enumConstName){ + TEnum* en = TEnum::GetEnum(typeid(MyEnum)); + if (en != nullptr){ + if (TEnumConstant const* enc = en->GetConstant(enumConstName.c_str())){ + return enc->GetValue(); + } + } + assert(0); + return -1; }