Date: Wed, 19 Nov 2025 09:47:19 +0100
I might not be able to attend the meeting tonight, but the proposals seem
fine to me.
Le mar. 18 nov. 2025 à 18:04, Tom Honermann via SG16 <sg16_at_[hidden]>
a écrit :
>
> - P3695R2: Deprecate implicit conversions between Unicode character
> types <https://wg21.link/p3695r2>.
>
> *P3695R2* is a new revision that addresses SG16 feedback provided during
> the 2025-09-24 SG16 meeting
> <https://wiki.edg.com/bin/view/Wg21telecons2025/SG16Teleconference2025-09-24>.
> The new revision deprecates conversions between the char8_t and wchar_t
> types as recommended by SG16. The paper also has new prose with rationale
> for not deprecating conversions between char16_t and char32_t and why
> considering these sets of conversions as narrowing should not be preferred
> over deprecation.
>
I think the following should be added to the rationale in sections 3.2 and
3.3 to reflect points made in discussion last time SG 16 saw this:
3.2, add at the end:
> In addition, char32_t is the natural type to use for code *points* (as
> opposed to UTF-32 code *units*), and char16_t can be used for BMP code
> points; code points may appear, for instance, in property APIs. In that
> case, the widening conversion is always correct: surrogate code points are
> code points, although they are not Unicode scalar values; they have
> properties, such as General_Category=Surrogate.
3.3, second sentence of the penultimate paragraph:
> *In some code bases, char is used for Latin-1 characters; in that case,
> comparison with char16_t and char32_t is always correct. *In some *other *code
> bases, char is used purely for ASCII characters and strings. In such code
> bases, comparing char to any other character type is always correct,
> assuming that an ASCII-compatible encoding is used everywhere.
Best regards,
Robin Leroy
fine to me.
Le mar. 18 nov. 2025 à 18:04, Tom Honermann via SG16 <sg16_at_[hidden]>
a écrit :
>
> - P3695R2: Deprecate implicit conversions between Unicode character
> types <https://wg21.link/p3695r2>.
>
> *P3695R2* is a new revision that addresses SG16 feedback provided during
> the 2025-09-24 SG16 meeting
> <https://wiki.edg.com/bin/view/Wg21telecons2025/SG16Teleconference2025-09-24>.
> The new revision deprecates conversions between the char8_t and wchar_t
> types as recommended by SG16. The paper also has new prose with rationale
> for not deprecating conversions between char16_t and char32_t and why
> considering these sets of conversions as narrowing should not be preferred
> over deprecation.
>
I think the following should be added to the rationale in sections 3.2 and
3.3 to reflect points made in discussion last time SG 16 saw this:
3.2, add at the end:
> In addition, char32_t is the natural type to use for code *points* (as
> opposed to UTF-32 code *units*), and char16_t can be used for BMP code
> points; code points may appear, for instance, in property APIs. In that
> case, the widening conversion is always correct: surrogate code points are
> code points, although they are not Unicode scalar values; they have
> properties, such as General_Category=Surrogate.
3.3, second sentence of the penultimate paragraph:
> *In some code bases, char is used for Latin-1 characters; in that case,
> comparison with char16_t and char32_t is always correct. *In some *other *code
> bases, char is used purely for ASCII characters and strings. In such code
> bases, comparing char to any other character type is always correct,
> assuming that an ASCII-compatible encoding is used everywhere.
Best regards,
Robin Leroy
Received on 2025-11-19 08:47:43
