念の為にboost::bad_lexical_castをcatchしておくこと.
std::string str = "3.1415";
double pi = boost::lexical_cast<double>( str );
// pi = 3.1415
str = "6.02E23";
double mol = boost::lexical_cast<double>( str);
// mol = 6.02E23
str = " 9.8";
std::string str2 = "2.71828 ";
try
{
double g = boost::lexical_cast<double>(str); //NG
double e = boost::lexical_cast<double>(str2); //NG
// --> throw boost::bad_lexical_cast
}
catch(boost::bad_lexical_cast e)
{
std::cerr << e << std::endl;
std::cerr << "Space is not acceptable in lexical_cast." << std::endl;
}

コメントをかく