On 1/5/24 11:26 AM, Jonathan Wakely via SG16 wrote:
Since the adoption of P2736 C++23 and the current C++ working draft just refer to "the Unicode Standard", with a URL referring to the latest version. We removed the bibliography entry for TR29 revision 35. P2736 gives the justification for this that the revision of #29 included in Unicode 15 (revision 41) is just a bug fix, so there's no problem referring to that instead.

That might have been true last year, but the current Unicode Standard (15.1.0) includes revision 43 of UAX #29, which makes significant changes to the extended grapheme cluster breaking rules. A new state machine is needed (and new lookup tables of properties) to implement rule GB9c. That's not just a bug fix, is it?

Are C++ implementations expected to implement rule GB9c, despite it not being part of the standard when C++23 was published? If not, where in the C++23 standard does it say that implementations should conform to version 15.0.0 of the Unicode Standard, rather than version 15.1.0, or whatever version they publish next? How can we conform to a moving target?

Am I missing some reference that names Unicode 15.0.0?

Thank you for raising this issue, Jonathan.

For reference, relevant SG16 discussions are recorded as follows:

Tom.