Go to the documentation of this file.00001 #ifndef _CommonTools_Utils_StringToEnumValue_h_
00002 #define _CommonTools_Utils_StringToEnumValue_h_
00003
00004
00005 #include "FWCore/Utilities/interface/Exception.h"
00006 #include "FWCore/Utilities/interface/TypeWithDict.h"
00007 #include <string>
00008 #include <sstream>
00009 #include <vector>
00010
00011
00024 template <class MyType>
00025 int StringToEnumValue(const std::string & enumMemberName){
00026 edm::TypeWithDict dataType(typeid(MyType), kIsEnum);
00027 return dataType.stringToEnumValue(enumMemberName);
00028 }
00029
00030
00052 template <class MyType>
00053 std::vector<int> StringToEnumValue(const std::vector<std::string> & enumNames){
00054
00055 using std::vector;
00056 using std::string;
00057
00058 vector<int> ret;
00059 vector<string>::const_iterator str=enumNames.begin();
00060 for (;str!=enumNames.end();++str){
00061 ret.push_back( StringToEnumValue<MyType>(*str));
00062 }
00063 return ret;
00064
00065 }
00066
00067 #endif