I'm wondering whether the SG16 efforts should leave old-style literals alone and focus on well-defined u8 literals, and eventually necessary encoding transformations to match the (runtime) environment.
There is an open question of whether the C++ community at large
will be willing to migrate to char8_t and u8 literals. Within the
Linux/macOS ecosystem, old-style literals are effectively already
UTF-8. I've taken the view that we need to hedge our bets and
provide the best support we can for each and watch where the
community leads us.
Support for transcoding interfaces is actively being worked on by
JeanHeyd via P1629 (we have a tentative
plan to provide an update on this at our next telecon on February
5th). This addresses directive 5.1 in P1238 (which is due for a new
revision). Directive 5.4 (briefly) discusses interaction at
program boundaries.
We've spent a fair amount of time talking about iostreams and the
transcoding support present there. It is ... not what we want.
Elegant interfaces that just DTRT in interactions with the
surrounding environment may very well require a replacement for
iostreams. Further research and prototyping are required.
Tom.
Jens