Boost.Locale
|
std::bad_cast
exception thrown? std::locale
object. All Boost.Locale tools relay on std::locale
object's facets. The locale object should be generated with generator class and then passed to the function or alternatively global locale should be set using std::locale::global()
function such that global locale (and default created one) would have required facets to use.#include <boost/locale.hpp> #include <iostream> int main() { boost::locale::generator gen; std::locale::global(gen("")); std::cout << boost::locale::as::date << std::time(0) << std::endl; }
iostream
objects. Thus because std::out
and other global streams were created before changing the global locale Boost.Locale manipulators have no effect. You need to write: #include <boost/locale.hpp> #include <iostream> int main() { boost::locale::generator gen; std::locale l = gen(""); std::locale::global(l); std::cout.imbue(l); std::cout << boost::locale::as::date << std::time(0) << std::endl; }