
Yakov Galka <ybungalobill@gmail.com> writes:
On Thu, Nov 15, 2012 at 8:05 PM, Alexander Lamaison <awl03@doc.ic.ac.uk>wrote:
[...] Every C++ runtime implementation, every C++ standard library implementation
Likely to be true at this point in time (although non of us can check *every* C++ runtime), but I know plans to do otherwise.
and other Boost libraries on Windows
AFAIK not boost.locale.
I wasn't aware of this but you are right. Hmmmm, perhaps, as consistency is already lost we should just give up and use UTF-8 unilaterlly.
[...] it is at least consistent.
So does using UTF-8 everywhere.
That would indeed be consistent, but, alas, it isn't possible without the consent of the compiler/STL which doesn't seem to be forthcoming. So what do you do when you need at pass a string to the C++ runtime or standard library? (Yes, I'm aware of Artyom's Nowide library due for review but, as far as I'm aware, that doesn't replace all C++/STL functions that take strings).
Also there will not be confusion if, as I said, it is done as a compile-time switch.
There will still be confusion in the situation I mentioned above where you have to pass your UTF-8 string to the C++ library. You would be forced to use something like Boost.Locale to convert your string to the local codepage and vice verse at the interface between your code and the C++ library. Yuk. Alex