C++ Logo

sg16

Advanced search

Re: Follow up on SG16 review of P2996R2 (Reflection for C++26)

From: Peter Dimov <pdimov_at_[hidden]>
Date: Tue, 30 Apr 2024 18:50:51 +0300
Jens Maurer wrote:
> On 30/04/2024 13.32, Peter Dimov via SG16 wrote:
> > Corentin Jabot wrote:
> >> Very rough draft https://isocpp.org/files/papers/D3258R0.pdf
> >
> > Looks good. I'm however not sure that it makes sense to format char8_t
> > (char16_t is borderline.)
> >
> > Or maybe that's only intended for {:?} ?
> >
> >> What about iostream?
> >> This is a story for another paper (One that an enthusiastic reader is
> >> encouraged to write!)
> >
> > Here's that paper:
> >
> > Insert at the end of
> > https://eel.is/c++draft/ostream.inserters.character
> > the following:
> >
> > template<class charT, class traits>
> > basic_ostream<charT, traits>& operator<<(basic_ostream<charT,
> > traits>& out, const char8_t* s); template<class charT, class traits>
> > basic_ostream<charT, traits>& operator<<(basic_ostream<charT,
> > traits>& out, const char16_t* s); template<class traits>
> > basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&
> > out, const char32_t* s);
>
> We should also (or maybe: only?) support u8string_view etc.

Yes, probably. std::string_view and std::string don't support mixed
output now, but of course it would make sense to add it, doing the same
thing.

> > Preconditions: s is not a null pointer.
> >
> > Effects:
> > Behaves like a formatted inserter (as described in
> [ostream.formatted.reqmts]) of `out`.
> > Creates a character sequence `seq` holding the transcoded representation
> > of s [format.string.transcode].
>
> I'm not finding that section. Can you give me the numerical number?

It's in Corentin's paper linked above. :-)

Received on 2024-04-30 15:50:57