# N4972 Editors' Report -- Programming Languages -- C++

Date: 2023-12-18

Thomas Köppe (editor, Google DeepMind)  
Jens Maurer (co-editor)  
Dawn Perchik (co-editor, Bright Side Computing, LLC)  
Richard Smith (co-editor, Google Inc)  

Email: `cxxeditor@gmail.com`

## Acknowledgements

Thanks to all those who have [submitted editorial
issues](https://github.com/cplusplus/draft/wiki/How-to-submit-an-editorial-issue)
and to those who have provided pull requests with fixes,
and special thanks to Johel Ernesto Guerrero Peña for providing in-depth review
of many of the draft motion applications.

## New papers

 * [N4971](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/n4971.pdf) is the
   current working draft for C++26. It replaces
   [N4964](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/n4964.pdf).
 * N4972 is this Editors' Report.

## Motions incorporated into working draft

### Notes on motions

All motions were applied cleanly, and the following additional changes applied
for the sake of integration:

*   LWG Polls 1 and 3 both modified [optional.monadic]:
    [LWG-3973](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p3040r0.html#3973)
    changed `**this` to `*val`, and
    [P2407R5](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2407r5.html)
    changed `value()` to `**this`. This has been reconciled by changing the
    latter to `*val`, too.
*   LWG Poll 2 created a freestanding facility (saturation arithmetic) but did
    not define a freestanding feature test macro. We added the macro
    `__cpp_lib_freestanding_numeric`, also defined in the `<numeric>` header.

The feature test macro `__cpp_lib_span` has been modified both LWG Poll 3 and
LWG Poll 10, and is now set to a common, updated value (`202311L`).

The linear algebra paper P1673R13 moved by LWG Poll 19 adds a substantial amount
of material, and numerous minor issues were discovered during application, many
of which have been fixed immediately, and some will be addressed in future
editorial work. One particular issue, which is not new and also affects the
random number and special maths functions, is how to relate variables in code
and mathematical variables in a mathematical expression.

### Core working group polls

CWG Poll 1: Accept as a Defect Report and apply the proposed resolution of all issues in
[P3046R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p3046r0.html)
(Core Language Working Group "ready" Issues for the November, 2023 meeting) to the C++ Working Paper.

CWG Poll 2: Accept as a Defect Report and apply the changes in
[P2308R1](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2308r1.html)
(Template parameter initialization) to the C++ Working Paper.

CWG Poll 3: Apply the changes in
[P2662R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2662r3.pdf)
(Pack Indexing) to the C++ Working Paper.

CWG Poll 4: Apply the changes in
[P2864R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2864r2.pdf)
(Remove Deprecated Arithmetic Conversion on Enumerations From C++26) to the C++ Working Paper.

CWG Poll 5 was withdrawn.

### Library working group polls

LWG Poll 1: Apply the changes for all Ready and Tentatively Ready issues in
[P3040R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p3040r0.html)
(C++ Standard Library Issues to be moved in Kona, Nov. 2023) to the C++ working paper.

LWG Poll 2: Apply the changes in
[P0543R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p0543r3.html)
(Saturation arithmetic) to the C++ working paper.

LWG Poll 3: Apply the changes in
[P2407R5](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2407r5.html)
(Freestanding Library: Partial Classes) to the C++ working paper.

LWG Poll 4: Apply the changes in
[P2546R5](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2546r5.html)
(Debugging Support) to the C++ working paper.

LWG Poll 5: Accept as a Defect Report and apply the changes in
[P2905R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2905r2.html)
(Runtime format strings) to the C++ working paper.

LWG Poll 6: Apply the changes in
[P2918R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2918r2.html)
(Runtime format strings II) to the C++ working paper.

LWG Poll 7: Accept as a Defect Report and apply the changes in
[P2909R4](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2909r4.html)
(Fix formatting of code units as integers (Dude, where's my char?)) to the C++ working paper.

LWG Poll 8: Apply the changes in
[P0952R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p0952r2.html)
(A new specification for `std::generate_canonical`) to the C++ working paper.

LWG Poll 9: Apply the changes in
[P2447R6](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2447r6.html)
(`std::span` over an initializer list) to the C++ working paper.

LWG Poll 10: Apply the changes in
[P2821R5](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2821r5.html)
(`span.at()`) to the C++ working paper.

LWG Poll 11: Apply the changes in
[P2868R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2868r3.pdf)
(Remove Deprecated `std::allocator` Typedef From C++26) to the C++ working paper.

LWG Poll 12: Apply the changes in
[P2870R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2870r3.pdf)
(Remove `basic_string::reserve()` From C++26) to the C++ working paper.

LWG Poll 13: Apply the changes in
[P2871R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2871r3.pdf)
(Remove Deprecated Unicode Conversion Facets from C++26) to the C++ working paper.

LWG Poll 14: Apply the changes in
[P2819R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2819r2.pdf)
(Add tuple protocol to `complex`) to the C++ working paper.

LWG Poll 15: Apply the changes in
[P2937R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2937r0.html)
(Freestanding: Remove `strtok`) to the C++ working paper.

LWG Poll 16: Apply the changes in
[P2833R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2833r2.html)
(Freestanding Library: `inout` `expected` `span`) to the C++ working paper.

LWG Poll 17: Accept as a Defect Report and apply the changes in
[P2836R1](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2836r1.html)
(`std::basic_const_iterator` should follow its underlying type's convertibility) to the C++ working paper.

LWG Poll 18: Apply the changes in
[P2264R7](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2264r7.html)
(Make `assert()` macro user friendly for C and C++) to the C++ working paper.

LWG Poll 19: Apply the changes in
[P1673R13](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p1673r13.html)
(A free function linear algebra interface based on the BLAS) to the C++ working paper.

## Comments on the Draft International Standard

This report includes our final dispositions on the Draft International Standard (DIS)
ballot comments for C++23 from national bodies and the ISO secretariat. Some of them only apply
to the published standard document and not the working draft, and the corresponding edits do not
appear in the working draft commit history. All comments on the ballot were editorial.

* **ISO/CS 01:** Accepted. We added references to the tables.
* **ISO/CS 02:** Accepted. We moved the explanations close to their point of use.
* **ISO/CS 03:** Accepted. We are now referring to a specific element, and keeping the dated reference.
* **ISO/CS 04:** Accepted.
* **ISO/CS 05:** Rejected: We do not understand the justification "Since there is no specific element referenced this reference shall be undated." The Drafting Directives seem to make a clear case for when undated (10.4) and dated (10.5) references are appropriate, and we firmly fall into the case where an undated reference is inappropriate ("if it will be possible to use all future changes of the referenced document" is definitely not the case). Reference to a specific element does not seem to be required in order to permit the use of a dated reference. Even the House Style seems to permit dated references when necessary: "When referring to the whole document, use an undated document number unless it is necessary that the user refers to a specific edition".
* **ISO/CS 06:** Rejected: Moot by comment 05.
* **ISO/CS 07:** Rejected: Moot by comment 05.
* **ISO/CS 08:** Accepted. We reworded the reference to the Unicode standard to make the normative nature more obvious.
* **ISO/CS 09:** Accepted.
* **ISO/CS 10:** Rejected: We find domains valuable here, since the terms often sound like plain English words, but have rather domain-specific meaning, and the domain establishes important context to aid understandability.
* **ISO/CS 11:** Accepted with modifications: four unused definitions are removed. The remaining term, "unspecified behavior" is retained, since it captures a variety of patterns which are not lexically spelled "behavior" but are neatly covered by this umbrella term.
* **ISO/CS 12:** Accepted with modifications: we have italicized the cross-references. However, for the formal grammar terms that we display in italic sans font, please see the discussion on comment 32.
* **ISO/CS 13:** Rejected: The token "CE" is not an acronym, but a meta variable (like "x" or "y". It is typeset distinctly. The name is evocative of its use.
* **ISO/CS 14:** Accepted.
* **ISO/CS 15:** Accepted.
* **ISO/CS 16:** Rejected: The wording is correct as written. However, this is also mooted by comment 11, which deletes the wording in question.
* **ISO/CS 17:** Accepted.
* **ISO/CS 18:** Accepted.
* **ISO/CS 19:** Accepted.
* **CA 20:** n/a, comment was filed erroneously
* **JP 21:** Accepted. We added an example.
* **JP 22:** Rejected: No consensus for change; any attributes of a lambda-declarator are considered to be attached to the synthesized function call operator or operator template (i.e. the member function of the closure type), not the closure type itself.
* **JP 23:** Accepted with modifications: The example is written as intended. The comments in the example have been amended to clarify the exposition.
* **JP 24:** Accepted.
* **JP 25:** Accepted.
* **JP 26:** Rejected: No consensus for change; the example deliberately introduces a facility to aid comprehension.
* **JP 27:** Rejected: No consensus for change; the example deliberately introduces a facility to aid comprehension.
* **JP 28:** Rejected: No consensus for change; the example deliberately introduces a facility to aid comprehension.
* **ISO/CS 29:** Accepted.
* **ISO/CS 30:** Accepted. We added a note that refers to the annex.
* **ISO/CS 31:** Accepted. We had previously used foreword wording from an older document.
* **ISO/CS 32:** Rejected, along with comment 12: our document has complex typographic requirements, and we have carefully selected a harmonizing family of typefaces in our document processing system that meets our needs. For example, certain parts of a formal grammar (some of which appear in Clause 3; see comment 12) require typographic distinction to avoid ambiguity. We have discussed this with the ISO secretariat.
* **ISO/CS 33:** Rejected: We have an approved SC22 ballot to permit the use of paragraph numbers. (We also have a proposal for the JDMT to add such a permission to the Drafting Directives.)
* **ISO/CS 34:** Accepted. Reworded to clarify.
* **ISO/CS 35:** Accepted.
* **ISO/CS 36:** Accepted the notes and tables captioning changes. Rejected the UK English spelling: The document defines many terms that must be spelled the same way by conforming implementations and by users of those implementations, and these terms use US English spelling. It would be confusing for the document text to use UK English spelling when describing these terms. (This is the same disposition as for a similar comment on the DIS ballot of 14882:2017.)
* **ISO/CS 37:** Rejected, please see comment 39.
* **ISO/CS 38:** Accepted with modifications: We will review the presentation of cross-references in Clause 3. However, the use of italics in Clause 3 is not a regular "emphasis/definition" in body font, but rather a grammar production, which we typeset distinctly. Please also see the discussion regarding comment 32.
* **ISO/CS 39:** Rejected: For this comment and for comment 37, we have carefully reviewed the permitted verbal constructions. We believe that the notes are the best place for this explanatory, optional information, and the wording as-is accurately describes the consequences of normative requirements for illustrative purposes. We would like to not move this explanatory material into the main text, since that text already contains a complex range of requirements on the C++ language, its implementations, and its users, and our community has been finding our established boundary for what is explanatory note material helpful.
* **ISO/CS 40:** Accepted. The logic that processed the notes was erroneous and failed to handle subclauses with more than 9 notes; this has been fixed.

## Editorial changes

### Major editorial changes

A number of editorial changes were made in response to requests from the ISO
secretariat during the publication of C++23. We list just a few noteworthy ones.

*   There is now a new "Introduction" subclause, which explains our use of
    stable labels and some typographic choices. In the future, we would like to
    expand the introduction to explain more comprehensively how the Standard is
    structured, phrased, and intended to be read.
*   Table captions are now formatted in bold, and the table number is separated
    from the caption by a dash.
*   Inadmissible text has been removed from Clauses 2 (Normative references) and
    3 (Terms and definitions), as those clauses must only contain specific,
    fixed wording. The removed text has been moved nearer to the places in the
    main text where it is needed.
*   Definitions in Clause 3 (Terms and definitions) now contain cross references
    to one another as appropriate.

### Minor editorial changes

A log of editorial fixes made to the working draft since N4964 is below. This
list excludes changes that do not affect the body text or only affect whitespace
or typeface. For a complete list including such changes (or for the actual
deltas applied by these changes), consult the
[draft sources on GitHub](https://github.com/cplusplus/draft/compare/n4964...n4971).

    commit a27ede64fef7fda551d480e5a1cf1b9a73832574
    Author: S. B. Tam <cpplearner@outlook.com>
    Date:   Tue Oct 24 20:55:27 2023 +0800

        [span.cons] Add `std::` for `data(arr)` (#6632)

    commit 84c526ebbda74553bf935f35f5594b8d5591bce5
    Author: Casey Carter <Casey@Carter.net>
    Date:   Mon Oct 30 14:22:57 2023 -0700

        [format.formatter.spec] Add missing include to example (#6636)

        The example code refers to `std::string` directly so it should `#include<string>`.

    commit 4a6f2e3f4791c44b8c8f32a75d0bebac4a7b6a9e
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Thu Nov 2 00:53:04 2023 +0100

        [intro.refs] Move nicknames for standards to relevant subclauses

    commit dc6eed02986d9c3c6827c710adb577ba0809f939
    Author: Krystian Stasiowski <sdkrystian@gmail.com>
    Date:   Tue Nov 7 04:32:19 2023 -0500

        [dcl.dcl, over.best.ics, temp.param, class.union.anon] Remove mentions of "storage class" (#3906)

    commit 17c09925b2423c596196d3f88a61ff7b4052ef7a
    Author: Krystian Stasiowski <sdkrystian@gmail.com>
    Date:   Tue Nov 7 01:16:28 2023 -0500

        [class.conv.fct] Fix reference to 'ref-qualifier-seq'

    commit 90720a35b0c3d65488d9dc9ecea682c271f43d52
    Author: A. Jiang <de34@live.cn>
    Date:   Mon Oct 30 09:34:01 2023 +0800

        [queue.syn] Show `formatter` specializations in the synopsis

    commit e43aa89a4882f8080fb10c843cdb25c9740b65c7
    Author: A. Jiang <de34@live.cn>
    Date:   Mon Oct 30 09:36:24 2023 +0800

        [stack.syn] Show the `formatter` specialization in the synopsis

    commit 80a8748fd401cfceee804bc96d2bfc518726d2e7
    Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
    Date:   Thu Oct 12 18:24:21 2023 -0400

        [class.copy.assign] Remove a superfluous note.

        Alternatively we could have added the word "non-object"; or changed
        it to say "An overloaded assignment operator must be a member function";
        but it doesn't seem like it needs to be here at all.

    commit c9c69dc54052badeb9b80458027371438d886763
    Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
    Date:   Thu Oct 12 18:58:39 2023 -0400

        [class.copy.assign] Add some missing "non-object"s

    commit 2b5fc2936f12f73e975dbb9f34d3790fe0aa708f
    Author: Matt Bentley <mattreecebentley@gmail.com>
    Date:   Wed Nov 8 14:56:22 2023 +1300

        [sequence.reqmts] Remove misleading, oversimplified informative text

    commit 11334c71244a046f0c29b01dfd79b35f6fea8cc4
    Author: Eisenwave <me@eisenwave.net>
    Date:   Fri Sep 1 09:29:01 2023 +0200

        [class.copy.elision] improve reference and replace informal term

    commit 4feefb62e0419bb52c678389163729959785d44a
    Author: Jan Schultke <me@eisenwave.net>
    Date:   Wed Nov 8 02:59:01 2023 +0100

        [mem.res.pool.options] Change "field" to "member" (#6479)

    commit a700e3b87b00d2673b3cded0a61201d09dfc051a
    Author: S. B. Tam <cpplearner@outlook.com>
    Date:   Wed Nov 8 10:01:46 2023 +0800

         [version.syn] Bump value of __cpp_lib_constexpr_complex (#6421)

        P1383R2 "More constexpr for <cmath> and <complex>" modifies two headers;
        both __cpp_lib_constexpr_cmath and __cpp_lib_constexpr_complex should be updated.

        This aligns with existing practice in SD6.

    commit e9fb04e1c1e67bfb07bf3c61145b9d63a0f0adcf
    Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
    Date:   Tue Sep 27 15:36:08 2022 -0400

        [dcl.enum] Enumerators don't have "initializers"

    commit bc3cb41a36dfff0d2358f4e294be9636590e680e
    Author: Krystian Stasiowski <sdkrystian@gmail.com>
    Date:   Tue Nov 7 21:08:15 2023 -0500

        [dcl.name] Turn informative wording into note (#3964)

    commit 82b2ba6f6245e717cb002a9a836117a918aab36a
    Author: Patrick Johnston <gcupcakekid@gmail.com>
    Date:   Wed Nov 8 02:10:58 2023 +0000

        [streambuf.general] Remove incorrect "abstract"

        The referenced class template `basic_streambuf` is not abstract.

    commit bbaa4a497e03d944fc38279db4d8c47eed7831d9
    Author: Jan Schultke <me@eisenwave.net>
    Date:   Thu Oct 12 20:51:57 2023 +0200

        [basic.lval] turn reference paragraph into note

    commit a03b8b70d6666b67d27c801b68d41683e987e929
    Author: Alisdair Meredith <alisdairm@me.com>
    Date:   Thu Oct 5 15:27:29 2023 -0400

        [temp.param] Introduce term to xref structural type

        The current cross-references to [temp.param] appear confusing,
        as the structural type definition is buried a couple of pages
        below.  Also, this change looks clearer in the source.

    commit 71ee18ab8cd9efca0d8afa1f6e639cb02610a52b
    Author: Alisdair Meredith <alisdairm@me.com>
    Date:   Tue Nov 7 16:18:40 2023 -1000

        [basic.types.general] Introduce term to xref implicit-lifetime type (#6591)

    commit 21454c7ebf67a1a723b61c32901a842c684e6b94
    Author: Language Lawyer <language.lawyer@gmail.com>
    Date:   Wed Aug 23 01:35:22 2023 +0500

        [intro.races] Make reading atomic objects nondeterministic

    commit df26017a6bfd74d794345ea9313eae1efacbf7c9
    Author: Jan Schultke <me@eisenwave.net>
    Date:   Wed Nov 8 03:31:10 2023 +0100

        [diff.dcl] Replace 'field initializers' with 'member initializers' (#6482)

    commit cc69fc0dd6b1a2fdc834bade578acb84cc7d2cfa
    Author: A. Jiang <de34@live.cn>
    Date:   Wed Nov 8 10:54:52 2023 +0800

        [intro.races] Remove inappropriate uses of "shall" (#6457)

    commit 60e280391a06b8d27f778a56310b0827109623aa
    Author: Eisenwave <me@eisenwave.net>
    Date:   Thu Aug 31 00:19:24 2023 +0200

        [cmath.syn] fix misaligned parameter lists

    commit 646bfb2a060e3c7f490f6c4672ee93a0cbaf6d0d
    Author: Alisdair Meredith <alisdairm@me.com>
    Date:   Wed Nov 8 05:59:28 2023 -1000

        [container.alloc.reqmts] Better xrefs for allocator-aware containers

        There are now more allocator-aware containers in the standard
        than when this subclause was first written, so ensure we have
        call outs to all relevent subclauses.

        The current wording for 'basic_stacktrace' also shows how
        containers can properly call out the allocator-aware container
        requirements, now that they have their own, titled subclause.

    commit 62e33ca8a0a55764227e6a67c1f554783ffefe40
    Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
    Date:   Thu Nov 9 00:01:38 2023 +0800

        [time.zone.leap.overview] Fix example (#6383)

    commit 07ae51af31587ac533b1b39c95777ecb725dcab0
    Author: A. Jiang <de34@live.cn>
    Date:   Wed Jan 25 18:22:53 2023 +0800

        [expr.prim.req.general] Correct the IFNDR example

    commit f3059744c84f561f8ead4c5d117bc1160c43b7e2
    Author: Jonathan Wakely <cxx@kayari.org>
    Date:   Wed Nov 8 23:52:44 2023 +0000

        [defns.character.container] Improve note to entry (#6644)

    commit 8b38857b22f6518a41e506e4c9b2e9a1792a0fbd
    Author: A. Jiang <de34@live.cn>
    Date:   Tue Oct 10 09:40:20 2023 +0800

        [iterator.requirements.general] Clarify non-forward iterator

    commit fbb1a6ebbd1f78e644df2dbcb3ce31250410779e
    Author: onihusube <44743040+onihusube@users.noreply.github.com>
    Date:   Fri Nov 10 08:36:12 2023 +0900

        [execpol.unseq] Fix missing \itemdescr (#5931)

    commit 10e2799f5d524dd941d424dfd08927c77a6b87f1
    Author: Alisdair Meredith <alisdairm@me.com>
    Date:   Fri Feb 17 10:47:28 2023 -0500

        [pairs.pair] Consistent wording for assignment

        Apply a consistent pattern to how we specify assigning members in assignment operators.

    commit 78300aa38c23f1356dca8e786205e5aaf7769d01
    Author: Barry Revzin <barry.revzin@gmail.com>
    Date:   Thu Nov 9 14:45:17 2023 -1000

        [class.compare] Don't introduce `V` for the return value (#6035)

        In both cases, I'm not sure introducing `V` helps much - just requires name lookup for `V`. If we just say "the return value" in every case, I think that's clearer.

    commit 838cb0649b1f4061e960772aee3563cedb20b108
    Author: Michael Florian Hava <mfh@live.at>
    Date:   Thu Nov 9 13:51:58 2023 -1000

        [basic.extended.fp] Replaced usage of 'mantissa' with 'significand'
        according to SO/IEC/IEEE 60559:2008

    commit ce5ef1b5334f1fc756d40e40ec300257b0ff99d9
    Author: Michael Florian Hava <mfh@live.at>
    Date:   Thu Nov 9 13:57:32 2023 -1000

        [numeric.limits.members] Replaced usage of 'mantissa' with 'significand' according to
        SO/IEC/IEEE 60559:2008

    commit 3e1f377a9dc3bece7acd2dddb7237065504db65c
    Author: Brian Bi <bbi5291@gmail.com>
    Date:   Thu Nov 9 16:00:22 2023 -1000

        [macros, styles] Add \hypertarget to headings (#6516)

        This allows forming URLs with a stable label as a fragment and
        have PDF viewers jump to the corresponding (sub)clause.

        For example: std.pdf#basic.life

    commit 60f7bb72cdd36e9d359fa7aea84a5b836079a0ed
    Author: Eisenwave <me@eisenwave.net>
    Date:   Thu Jul 6 13:41:56 2023 +0200

        [namespace.std] convert (a) and (b) notation to items

    commit f48f316c42c6cb67058d9f9106852154497b4516
    Author: Jan Schultke <me@eisenwave.net>
    Date:   Fri Nov 10 06:57:17 2023 +0100

        [atomics.order] Use "recommended practice" (#6380)

    commit 1ec1d9e6fa98734b3edf20f6c2217a4482f78103
    Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
    Date:   Fri Nov 10 16:59:21 2023 +0800

        [meta.{unary.prop.query,trans.arr] Use `static_assert` instead of `assert` in example

    commit bd8f4540720e52dab9187a62c5598e735aeacfdd
    Author: Eisenwave <me@eisenwave.net>
    Date:   Sat Aug 19 15:57:39 2023 +0200

        [expr.sizeof] use constexpr member in example

    commit b1f922a126dcda78acb4bae055843e7a7321fe1d
    Author: Eisenwave <me@eisenwave.net>
    Date:   Wed Aug 23 13:42:39 2023 +0200

        [basic.def.odr] Fix hyphenation of "{copy,move} assignment"

    commit 54e465a17adfcba56a57ff2fefe43ec898725efb
    Author: Eisenwave <me@eisenwave.net>
    Date:   Wed Aug 23 13:43:46 2023 +0200

        [res.on.arguments] Fix hyphenation of "move assignment"

    commit 3c5b5b0c58d0440233d992e1a0791a449936f203
    Author: Eisenwave <me@eisenwave.net>
    Date:   Wed Aug 23 13:44:40 2023 +0200

        [futures.{unique,shared}.future] Fix hyphenation of "{copy,move} assignment"

    commit 9483cb7cf6973689ad563d30778d8da2dff42a8d
    Author: Jonathan Wakely <cxx@kayari.org>
    Date:   Wed Nov 8 22:57:57 2023 +0000

        [string.capacity] Remove parentheses from "reserve()"

        It's very confusing to talk about `reserve()` when describing a call to
        `reserve(size_type)`, given that the overload `reserve()` also exists.

    commit 2a9f28670a0df6e239d9b335bdb014f20f577732
    Author: lprv <100177227+lprv@users.noreply.github.com>
    Date:   Mon Jul 24 16:19:01 2023 +0000

        [dcl.meaning.general] Use 'declarator-id' instead of 'name'

    commit d8b72f0ceb36b3537ef576ab216d588642e332ab
    Author: lprv <100177227+lprv@users.noreply.github.com>
    Date:   Tue Jul 25 18:26:03 2023 +0000

        [module.global.frag] Simplify wording

        Also make variable order consistent across bullets.

    commit f0c172c5604b47c3ecc7b64669aad660df403624
    Author: Oliver Rosten <oliver.rosten@gmail.com>
    Date:   Fri Nov 10 18:12:06 2023 +0000

        [algorithms] Change stable label "mismatch" to "alg.mismatch" (#6653)

    commit d97603a90d2fcfeec2caf4371ca9e6c8f562842a
    Author: A. Jiang <de34@live.cn>
    Date:   Sat Nov 11 03:21:17 2023 +0800

        [forward.iterators] Use "Cpp17" requirement (#6612)

    commit f474227b69d10350999a5fc63503725421a89954
    Author: Geng Cheng <xmcgcg@qq.com>
    Date:   Sat Nov 11 10:25:39 2023 +0800

        [stringstream.general] Add missing template argument "Allocator" (#6560)

    commit f5fdfe453e5a1e0370f2cb28bfc2dfeecab6370e
    Author: Alisdair Meredith <alisdairm@me.com>
    Date:   Wed Nov 8 15:12:16 2023 -1000

        [diff.cpp20.library] Add missing new headers for C++23

    commit 38dfe3db0f08bd09a2b445ba82e83f7caae28d94
    Author: A. Jiang <de34@live.cn>
    Date:   Thu Nov 9 11:00:44 2023 +0800

        [dcl.init.ref] Clarify "related type"

        "Related type" is not a term, "reference-related type" is clearer.

    commit 979983929bb592c02c9ae3e52f1c676dd5ae06fe
    Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
    Date:   Tue Nov 14 02:27:01 2023 +0800

        [range.cartesian.view] Don't name unused template parameter (#6177)

    commit ecbeb5ad4e4c0ac1d0cdb5e8dd01daab8df8d62e
    Author: Alisdair Meredith <alisdairm@me.com>
    Date:   Tue Nov 14 14:27:27 2023 -0500

        [diff.cpp23.library] Entry for new headers in C++26 (#6648)

    commit eb7f0bcbff2af109643089ef36dfe67040a27f4a
    Author: Thomas Köppe <tkoeppe@google.com>
    Date:   Mon Nov 13 01:12:50 2023 -1000

        [intro.defs, macros] Add cross-references among definitions

        Fixes ISO/CS 017 (C++23 DIS).

    commit 706880e4ed855ae76d503c70adfb0015bbfb3df0
    Author: Lewis Baker <lewissbaker@users.noreply.github.com>
    Date:   Thu Nov 16 10:36:25 2023 +1030

        [allocator.requirements.general] Fix missing ellipsis (#6695)

    commit 5c0103c0a656cbcd725780388b0879e992a1b21a
    Author: Jonathan Wakely <cxx@kayari.org>
    Date:   Thu Nov 16 15:38:47 2023 +0000

        [stacktrace.format], [stacktrace.basic.hash] change rSec3 to rSec2

        These should not be nested below std::basic_stacktrace because they
        apply to both std::stacktrace_entry and std::basic_stacktrace.

    commit a6ad6083ab75901cb41b5bc8d034c0b322433457
    Author: Thomas Köppe <tkoeppe@google.com>
    Date:   Tue Dec 5 23:42:23 2023 +0000

        [std, styles] Adjust table captions as per ISO request

        ISO has asked for captions to be bold and table numbers to be
        separated by a dash.

    commit f519ea4aa97592703ba5bbe9164242d946723721
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Thu Dec 7 01:00:53 2023 +0100

        [intro.refs, time.format] Update references from ISO 8601:2004 to ISO 8601-1:2019 (#6720)

    commit 37956fb3685c2c279bd6b4b701964b20913d0c79
    Author: Thomas Köppe <tkoeppe@google.com>
    Date:   Wed Dec 6 19:01:29 2023 +0000

        [syntax] Change "italic" to "italic, sans-serif"

        We changed the grammar non-terminal font to sans-serif,
        so we should update the description.

    commit 4eed7a0f1e44c45554f8a210af34fd6e1ea19596
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Thu Dec 7 22:13:35 2023 +0100

        [intro.abstract] Actually use the phrase 'unspecified/undefined behavior'

        Fixes ISO/CS 011 (C++23 DIS).

    commit f8a6138da1e431779ac43a893faa32f3f0cad7d0
    Author: Thomas Köppe <tkoeppe@google.com>
    Date:   Thu Dec 7 12:45:11 2023 +0000

        [intro.defs] Fix introductory text according to ISO rules.

        In principle, "symbols and abbreviated terms" can be listed in a
        standard, and can be listed in a separate clause or in a combined
        clause 3 "Terms, definitions, symbols and abbreviated terms", we do
        not actually need symbol definitions. In any case, the introductory
        text would never mention "symbols".

    commit 9961cd4f16aca645c77d6927526ea71f635a2932
    Author: Thomas Köppe <tkoeppe@google.com>
    Date:   Thu Dec 7 00:01:48 2023 +0000

        [introduction] A minimal "Introduction" clause

        This clause explains our conventions regarding stable labels and
        choice of fonts.

    commit 9041b27206388fecd03073bb913185ac738c6dca
    Author: Thomas Köppe <tkoeppe@google.com>
    Date:   Mon Dec 18 00:57:45 2023 +0000

        [optional.monaic] Restore wording effected by LWG3973.

        Both LWG3973 (Motion 1) and P2407R5 (Motion 3) modified this wording:
        LWG3973 changes "value()" to "*val" to address ADL concerns, and
        P2407R5 changed "value()" to "**this" to be freestanding. In light of
        the former, the latter should also use "*val".

        Independently, additional problems have been discovered with LWG3973,
        but those will be addressed by a future LWG issue.

    commit 2b1867a3404562c4261722e0a913cbcbf5a0a476
    Author: Thomas Köppe <tkoeppe@google.com>
    Date:   Sun Dec 17 23:10:44 2023 +0000

        [version.syn] New feature test macro __cpp_lib_freestanding_numeric

        This macro indicates that freestanding support for "saturation
        arithmetic" is available, which was added in motion LWG-2 (via
        P0543R3). This reverts the previous change
        148e03a16d53ff8cffd219384df37efad5fd386d, which I had made subsequent
        to motion LWG-3 (P2407R5), on advice of LWG. A separate macro is
        preferable to mixing both headers under "algorithm".

    commit fa54f9e7306b3d0abb21a82b5cc951711c96161f
    Author: Jonathan Wakely <cxx@kayari.org>
    Date:   Wed Dec 13 11:03:18 2023 +0000

        [range.access.general] Use consistent "In addition to being available ..." form

        Elsewhere we say "the header" or "any of the headers", e.g. [meta.trans.other],
        [tuple.helper], etc.

    commit 8c611593555b93a45a13543ad265d8cfaf646932
    Author: Cassio Neri <cassio.neri@gmail.com>
    Date:   Mon Nov 27 19:47:29 2023 +0000

        [expected.general] Fix description of expected<T, E> (issue #6714.)

    commit 12565ed5ea083761b25df3c8325989f95fa04898
    Author: Po-yao Chang <poyaoc97@gmail.com>
    Date:   Wed Nov 22 23:02:49 2023 +0800

        [class.eq] Fix the return value of a defaulted == operator function
