CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/CommonTools/Utils/interface/StringToEnumValue.h

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