views:

180

answers:

1

hi. 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

OS - Linux Mint

boost-1.43

gcc-4.6.0

+1  A: 
  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.
Artyom