2015-09-17 20 views
2

Следующий простой код, скомпилированный с -lboost_locale, генерирует исключение для произвольного литья. Это тот же самый код в учебнике boost. Любая помощь?boost locale bad cast exception

#include <boost/locale.hpp> 
#include <iostream> 
int main() 
{ 
    using namespace boost::locale; 
    date_time now; 
    std::cout<<as::date<<now<<std::endl; 
} 

ответ

3

Вам необходимо пропитать (глобальные) локали:

Live On Coliru

#include <boost/locale.hpp> 
#include <iostream> 

int main() { 
    using namespace boost::locale; 
    boost::locale::generator gen; 
    std::locale loc = gen.generate(""); // or "C", "en_US.UTF-8" etc. 
    std::locale::global(loc); 
    std::cout.imbue(loc); 

    date_time_period_set things; 
    date_time now; 
    std::cout << as::date << now << std::endl; 
} 

Принты, например, на колонке:

09/17/15 
+0

большое спасибо –