
Artyom wrote:
However there is still a limitation when working with 2 byte characters (ie char16_t or wchar_t under windows) as Boost.Locale would work correctly only with UCS-2
But this is actually C++ standard's limitation.
Artyom, I've always wondered about this, so will take this chance for clarification. Isn't this rather windows compilers' non-compliance? 3.9.1/5 "Type wchar_t is a distinct type whose values can represent distinct codes for all members of the largest extended character set specified among the supported locales (22.1.1). Type wchar_t shall have the same size, signedness, and alignment requirements (3.9) as one of the other integral types, called its underlying type." So _if_ any supported locale can handle characters outside of BMP, the implementation will qualify as non-conforming according to this paragraph. I know that windows OS itself can handle such characters, so I'd expect supported std locales to be able to handle them as well, but I haven't checked that. Any clarification on this matter would be appreciated. Thank you, Gevorg