C++ Logo

sg16

Advanced search

Re: [SG16] Wording strategy for Unicode std::format

From: Hubert Tong <hubert.reinterpretcast_at_[hidden]>
Date: Fri, 16 Apr 2021 13:17:18 -0400
On Fri, Apr 16, 2021 at 1:15 PM Hubert Tong <
hubert.reinterpretcast_at_[hidden]> wrote:

> On Fri, Apr 16, 2021 at 1:08 PM Peter Brett via SG16 <
> sg16_at_[hidden]> wrote:
>
>> Hi all (esp. Victor),
>>
>> We discussed adding C++23 support for homogeneous formatting in UTF-8,
>> UTF-16 and UTF-32. For C++23, we would like to allow UTF-8 format
>> strings with UTF-8 substitutions, UTF-16 format strings with UTF-16
>> substitutions, etc. In a future version of the standard (where UTF
>> transcoding is guaranteed to be available) we would like to extend this
>> to allowing e.g. UTF-32 substitutions into UTF-8 format strings.
>>
>> Victor: {fmt} already does exactly this, right?
>>
>> As far as I can tell, most of the wording is already in place for this,
>> and it will only be necessary to mandate the addition of specific
>> overloads and template specialisations.
>>
>> My current sticking point is the way we have specified the
>> locale-specific form (with the `L` option). Take the `{L}` substitution
>> for bool, for example. In P1892 I chose to specify this in terms of
>> std::numpunct<charT>, but the standard only requires the standard
>> library to provide numpunct<char> and numpunct<wchar_t> specializations.
>> Similar problems arise for `L` with other standard format specifiers.
>>
>> How can we word this so as to make `{L}` substitutions for UTF-8/16/32
>> formatting conditionally-supported, depending on whether the
>> implementation provides the necessary specializations of <locale>
>> facilities?
>>
>
> Isn't the "first problem" that the current wording potentially treats
> "plain" char as UTF-8 regardless of locale?
>

Nevermind; ( format not print )


>
>>
>> Advice appreciated.
>>
>> Peter
>> --
>> SG16 mailing list
>> SG16_at_[hidden]
>> https://lists.isocpp.org/mailman/listinfo.cgi/sg16
>>
>

Received on 2021-04-16 12:17:45