Boost.Locale
|
The support of C++11 char16_t
and char32_t
is experimental, mostly does not work and not intended to be used in production with current latest compilers: GCC-4.5, MSVC10 till major compiler's flaws would be fixed.
GNU C++ compiler provides decent support of C++11 characters however:
char16_t
or char32_t
streams would just fail.char16_t/char32_t
locale facets, so "std" backends is not build-able as essential symbols missing, also codecvt
facet can't be created as well.MSVC provides all required facets however:
/MD
, /MDd
compiler flags and requires static link of the runtime library.char16_t
and char32_t
are not distinct types but rather aliases of unsigned short and unsigned types which contradicts to C++11 requirements making it impossible to write char16_t/char32_t
to stream and causing multiple faults.If you want to build or test Boost.Locale with C++11 char16_t and char32_t support you should pass cxxflags="-DBOOST_LOCALE_ENABLE_CHAR32_T -DBOOST_LOCALE_ENABLE_CHAR16_T"
to b2
during build and define BOOST_LOCALE_ENABLE_CHAR32_T
and BOOST_LOCALE_ENABLE_CHAR32_T
when using Boost.Locale