cplusplus / nbballot

Handling of NB comments in response to ballots
14 stars 4 forks source link

**-008 [intro.refs] Reference to Unicode standard #550

Closed jensmaurer closed 8 months ago

jensmaurer commented 9 months ago

The Unicode Consortium. The Unicode Standard. Available from: https://www.unicode.org/

There is no explicit requirement to use this document. Please move the reference to the Bibliography. ISO/IEC Directives, Part 2, 15.5.3: “Only references cited in the text in such a way that some or all of their content constitutes requirements of the document shall be listed in the Normative references clause.” This reference has been moved to the Bibliography at the end of the document.

jensmaurer commented 9 months ago

[lex.charset] has plenty of references to "Unicode" (and Unicode scalar value), so we need this as a normative reference to understand what it means. What exactly should we do to make ISO/CS happy in this regard?

I'm not seeing detailed instructions for inline citations of non-ISO standards in the ISO Directives, Part 2.

@tkoeppe , could you find out, please?

jensmaurer commented 9 months ago

So, I guess what's missing is an explicit reference similar to "Unicode scalar value (as specified in the Unicode Standard)".

CWG agreed to add a few such references in strategic places, e.g. reliance on scalar value and reliance on UTF-x.

jensmaurer commented 9 months ago

[lex.charset] already contains a normative reference:

For a UTF-8, UTF-16, or UTF-32 literal, the Unicode scalar value corresponding to each character of the translation character set is encoded as specified in the Unicode Standard for the respective Unicode encoding form.

Same for [lex.name]:

The program is ill-formed if an identifier does not conform to Normalization Form C as specified in the Unicode Standard.

However, it seems only references appearing near a "shall" are considered indispensable normative references.

jensmaurer commented 9 months ago

Accepted with modifications. The reference to the Unicode Standard is intended to be normative, and some of its contents are requirements for C++ as well. The text in subclause 5.3 has been clarified accordingly.