Ideally, we need 3 separate things:

1/ A way to read/write byte streams
2/ A way to transcode to/from non-unicode encoding
3/ A way to determine the encoding expected by a given stream.

The later is in the general case not possible, and it might not be generically possible for simple things like console i/o.
I think the only sane way forward is to by default assume utf8 everywhere and work with os vendors to ensure they have the same defaults.

I think 1/ falls entirely outside of the scope of SG16

On Thu, 7 Feb 2019 at 10:05 Peter Bindels <> wrote:
Was this not most of what Niall Douglas' proposal was for alternate memory?

On Thu, 7 Feb 2019 at 09:12, Bryce Adelstein Lelbach aka wash <> wrote:
I agree; a new io library is a high priority thing for me.

On Sun, Feb 3, 2019, 5:44 AM Lyberta < wrote:
Since we introduced char8_t but not char8_t-based streams, early users
of char8_t will face significant difficulties working with char8_t based
data. I think we should let iostreams die and think of something simpler
that uses std::byte and then build text I/O on top of it.


SG16 Unicode mailing list
SG16 Unicode mailing list
SG16 Unicode mailing list