при стандартном использовании используется схема краткого именования, использованная в старом C. Таким образом, где у вас есть
std::string to_string( int value );
, у вас есть
int std::stoi(std::string);
см. Здесь
http://en.cppreference.com/w/cpp/string/basic_string/stol
так, где у вас может быть.
std::string to_string(my_enum);
у вас может быть
my_enum stomy_enum(std::string)
хотя я просто буду многословен об этом
my_enum string_to_my_enum(std::string)
или просто используйте потоки
std::stringstream ss(my_str);
if(ss >> emun_) //conversion worked
Определение оператора потока также позволяет использовать лексическое приведение от boost;
enum_ = boost::lexical_cast<my_enum>(my_str);