Seasons.NET

ちょっとした技術ブログです

lexical_castが例外を投げる件

ふんふん♪とBYTEキャストをlexical_castで行うと例外を投げてくれるというナイスっぷり。
内部で使われているstringstreamでも同様のテストを行いましたが、アスキーコードに
変換されてしまうため、どうもその時に変換できなくて例外っぽいです。
なので、intで受け取って、static_castで対応しとります。

#if defined( __STRINGSTREAM_TEST )
TESTCASE_( stringstreamtest )
{
    std::string s("255");

    BYTE value = 0;
    int ret = 0;
    ret = boost::lexical_cast<int>( s );
    value = static_cast<BYTE>(ret);
    cout << value << endl;
}
#endif