开发者

boost::filesystem::path(std::wstring) throw exception

开发者 https://www.devze.com 2023-01-01 14:42 出处:网络
this code: boost::filesystem::is_directory(\"/usr/include\"); work fine. both this code: boost::filesystem::is_directory(L\"/usr/include\");

this code:

boost::filesystem::is_directory("/usr/include");

work fine.

both this code:

boost::filesystem::is_directory(L"/usr/include");

throw an exception:

terminate called after throwing an instance of 'std::runtime_error'

what(): locale::facet::_S_create_c_locale name not valid

开发者_Go百科

OS - Linux Mint

boost-1.43

gcc-4.6.0


  1. Don't use wide strings on Linux. You don't need them..
  2. What happens that it tries to convert wide string to normal one and for this creates a locale and probably this locale is not configured in your system.

    Bring output of commands:

    locale 
    locale -a
    
  3. GCC-4.6 wasn't released yet ;-), check if this works with ordinary compiler. Probably libstdc++ wasn't build well.
0

精彩评论

暂无评论...
验证码 换一张
取 消