This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115d. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2024-10-26


2843. Undated reference to Unicode makes C++ a moving target

Section: Clause 2  [intro.refs]     Status: review     Submitter: Jonathan Wakely     Date: 2024-01-05     Liaison: LWG, EWG

Clause 2 [intro.refs] paragraph 1.10 uses an undated reference for the Unicode standard, meaning that a published (and otherwise frozen) standard for C++ (e.g. C++23) will implicitly refer to a new revision of the Unicode standard the moment such is issued:

... For undated references, the latest edition of the referenced document (including any amendments) applies.

This situation is strictly worse than the lack of support for certain scripts or languages, which can be rectified by updating the reference to Unicode in the next revision of the C++ standard, as is regularly done with any other missing language feature deemed worth addressing.

Possible resolution [SUPERSEDED]:

Change in Clause 2 [intro.refs] paragraph 1.10 as follows:

Additional notes (January, 2024)

Forwarded to SG16 and LWG by decision of the CWG chair, via paper issue 1736.

SG16 2024-01-10

SG16 has consensus to have a dated reference to Unicode in the "Normative references", indicating a minimum version, and add permission to implement an implementation-defined later version.

Possible resolution [SUPERSEDED]:

  1. Change in Clause 2 [intro.refs] paragraph 1.10 as follows:

  2. Add a paragraph before 4.1.1 [intro.compliance.general] paragraph 8 as follows:

    A conforming implementation may implement an implementation-defined version of the Unicode Standard that is a later version than the one referenced in Clause 2 [intro.refs].

    A conforming implementation may have extensions (including additional library functions), provided they do not alter the behavior of any well-formed program.

CWG 2024-01-19

CWG took note of the issue. No objections were raised regarding the suggested direction.

EWG 2024-03-18

Allow implementation-defined Unicode version, but require at least version 15.1.

Possible resolution:

  1. Change in Clause 2 [intro.refs] paragraph 1.10 as follows:

  2. Add a paragraph before 4.1.1 [intro.compliance.general] paragraph 8 as follows:

    A conforming implementation may implement an implementation-defined version of the Unicode Standard that is a later version than the one referenced in Clause 2 [intro.refs].

    A conforming implementation may have extensions (including additional library functions), provided they do not alter the behavior of any well-formed program.