Lots of great points earlier. I mostly agree with them.I would support such a thing. All other languages went there and it works great for them. Python will for example assume utf8 in the absence of pragma.This will be probably an underappreciated point: Python started off pre-Unicode, same as C++, and later on switched the default from "your current C locale" (i.e. only 7-bit ASCII was portable) into utf-8. Their world did not end. Some users complained, sure, but because it was announced in advance, and one could pragma opt-out, it was fine.
I suggest you read https://snarky.ca/why-python-3-exists. Some
choice quotes:
I think the lesson we should take from Python3 is that caution is warranted and that we need to be (as always) very careful about changing the semantics of existing code.We will never do this kind of backwards-incompatible change again
We have decided as a team that a change as big asunicode/str/byteswill never happen so abruptly again. When we started Python 3 we thought/hoped that the community would do what Python did and do one last feature release supporting Python 2 and then cut over to Python 3 development for feature development while doing bugfix releases only for the Python 2 version. That obviously didn't happen and we have learned our lesson.
C++ could do with being bolder in becoming simpler and less surprising for end users. It is not unreasonable for a German to type an umlaut into a string literal, and expect that C++ source code to be portable and unsurprising by default.
Personally, I appreciate that the C++ committee is sensitive to
backward compatibility. I agree we need to make things easier for
programmers, and there are steps we can take that don't require a
utf-8-all-the-things approach.
Tom.
Niall _______________________________________________ SG16 Unicode mailing list Unicode@isocpp.open-std.org http://www.open-std.org/mailman/listinfo/unicode