C++ Logo

sg16

Advanced search

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

From: Jens Maurer <jens.maurer_at_[hidden]>
Date: Tue, 30 Apr 2024 14:36:11 +0200
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.

> 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?

Jens

Received on 2024-04-30 12:36:27