Я видел несколько ответов на другие вопросы boost::lexical_cast
, которые утверждают, что возможно следующее:
bool b = boost::lexical_cast< bool >("true");
Это не работает для меня с g++ 4.4.3 boost 1.43. (Возможно, это правда, что он работает на платформе, где по умолчанию установлен std:: boolalpha)
Это является хорошим решением проблемы с строкой для bool, но ей не хватает проверки ввода, которую обеспечивает boost:: lexical_cast.