<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
html {
  font-size: 100%;
  font-family: "DejaVu Serif", Georgia, Times, serif;
  overflow-y: scroll;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

body{
  color:#444;
  font-size:12px;
  line-height:1.5em;
  background:#fefefe;
  width: 45em;
  margin: 10px auto;
  padding: 1em;
  outline: 1300px solid #FAFAFA;
}

a{ color: #0645ad; text-decoration:none;}
a:visited{ color: #0b0080; }
a:hover{ color: #06e; }
a:active{ color:#faa700; }
a:focus{ outline: thin dotted; }
a:hover, a:active{ outline: 0; }

span.backtick {
  border:1px solid #EAEAEA;
  border-radius:3px;
  background:#F8F8F8;
  padding:0 3px 0 3px;
}

::-moz-selection{background:rgba(255,255,0,0.3);color:#000}
::selection{background:rgba(255,255,0,0.3);color:#000}

a::-moz-selection{background:rgba(255,255,0,0.3);color:#0645ad}
a::selection{background:rgba(255,255,0,0.3);color:#0645ad}

p {
  margin: 0 0 1.35em 0;
}

img{
max-width:100%;
}

h1,h2,h3,h4,h5,h6 {
  font-weight:normal;
  color:#111;
  line-height: 135%;
}
h4,h5,h6{ font-weight: bold; }
h1{ font-size:2.5em; }
h2{ font-size:2em; border-bottom:1px solid silver; padding-bottom: 5px; }
h3{ font-size:1.5em; margin: 1em 0 0.5em 0; }
h4{ font-size:1.2em; }
h5{ font-size:1em; }
h6{ font-size:0.9em; }

blockquote{
color:#666666;
margin:0;
padding-left: 3em;
border-left: 0.5em #EEE solid;
}
hr { display: block; height: 2px; border: 0; border-top: 1px solid #aaa;border-bottom: 1px solid #eee; margin: 1em 0; padding: 0; }


pre, code, kbd, samp {
  font-family: "DejaVu Sans Mono", Consolas, Courier, serif;
}
kbd, samp {
  color: #000;
  border-radius:3px;
  background-color: #F8F8F8;
  border: 1px solid #CCC;
}
pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; padding: 5px 12px;}

b, strong { font-weight: bold; }

dfn { font-style: italic; }

ins { background: #ff9; color: #000; text-decoration: none; }

mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; }

sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { top: -0.5em; }
sub { bottom: -0.25em; }

ul, ol { margin: 0 0 1em 0; padding: 0 0 0 2em; }
ul ul, ul ol, ol ul, ol ol { margin: 0; padding: 0 0 0 1.35em; }
li { padding: 0 0 1ex 0; }
li p:last-child { margin: 0 }
dd { margin: 0 0 0 2em; }

img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; }

table { border-collapse: collapse; border-spacing: 0; }
td { vertical-align: top; }

@media only screen and (min-width: 480px) {
body{font-size:14px;}
}

@media only screen and (min-width: 768px) {
body{font-size:16px;}
}

@media print {
  * { background: transparent !important; color: black !important; filter:none !important; -ms-filter: none !important; }
  body{font-size:12pt; max-width:100%; outline:none;}
  a, a:visited { text-decoration: underline; }
  hr { height: 1px; border:0; border-bottom:1px solid black; }
  a[href]:after { content: " (" attr(href) ")"; }
  abbr[title]:after { content: " (" attr(title) ")"; }
  .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
  pre, blockquote { border: 1px solid #999; padding-right: 1em; page-break-inside: avoid; }
  tr, img { page-break-inside: avoid; }
  img { max-width: 100% !important; }
  @page :left { margin: 15mm 20mm 15mm 10mm; }
  @page :right { margin: 15mm 10mm 15mm 20mm; }
  p, h2, h3 { orphans: 3; widows: 3; }
  h2, h3 { page-break-after: avoid; }
}
</style>
<title>N4972</title>
</head>
<body>
<h1>N4972 Editors&rsquo; Report:<br> Programming Languages &mdash; C++</h1>

<p>Date: 2023-12-18</p>

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

<p>Email: <code>cxxeditor@gmail.com</code></p>

<h2>Acknowledgements</h2>

<p>Thanks to all those who have <a href="https://github.com/cplusplus/draft/wiki/How-to-submit-an-editorial-issue">submitted editorial
issues</a>
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.</p>

<h2>New papers</h2>

<ul>
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/n4971.pdf">N4971</a> is the
current working draft for C++26. It replaces
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/n4964.pdf">N4964</a>.</li>
<li>N4972 is this Editors' Report.</li>
</ul>

<h2>Motions incorporated into working draft</h2>

<h3>Notes on motions</h3>

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

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

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

<p>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.</p>

<h3>Core working group polls</h3>

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

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

<p>CWG Poll 3: Apply the changes in
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2662r3.pdf">P2662R3</a>
(Pack Indexing) to the C++ Working Paper.</p>

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

<p>CWG Poll 5 was withdrawn.</p>

<h3>Library working group polls</h3>

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

<p>LWG Poll 2: Apply the changes in
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p0543r3.html">P0543R3</a>
(Saturation arithmetic) to the C++ working paper.</p>

<p>LWG Poll 3: Apply the changes in
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2407r5.html">P2407R5</a>
(Freestanding Library: Partial Classes) to the C++ working paper.</p>

<p>LWG Poll 4: Apply the changes in
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2546r5.html">P2546R5</a>
(Debugging Support) to the C++ working paper.</p>

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

<p>LWG Poll 6: Apply the changes in
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2918r2.html">P2918R2</a>
(Runtime format strings II) to the C++ working paper.</p>

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

<p>LWG Poll 8: Apply the changes in
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p0952r2.html">P0952R2</a>
(A new specification for <code>std::generate_canonical</code>) to the C++ working paper.</p>

<p>LWG Poll 9: Apply the changes in
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2447r6.html">P2447R6</a>
(<code>std::span</code> over an initializer list) to the C++ working paper.</p>

<p>LWG Poll 10: Apply the changes in
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2821r5.html">P2821R5</a>
(<code>span.at()</code>) to the C++ working paper.</p>

<p>LWG Poll 11: Apply the changes in
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2868r3.pdf">P2868R3</a>
(Remove Deprecated <code>std::allocator</code> Typedef From C++26) to the C++ working paper.</p>

<p>LWG Poll 12: Apply the changes in
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2870r3.pdf">P2870R3</a>
(Remove <code>basic_string::reserve()</code> From C++26) to the C++ working paper.</p>

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

<p>LWG Poll 14: Apply the changes in
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2819r2.pdf">P2819R2</a>
(Add tuple protocol to <code>complex</code>) to the C++ working paper.</p>

<p>LWG Poll 15: Apply the changes in
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2937r0.html">P2937R0</a>
(Freestanding: Remove <code>strtok</code>) to the C++ working paper.</p>

<p>LWG Poll 16: Apply the changes in
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2833r2.html">P2833R2</a>
(Freestanding Library: <code>inout</code> <code>expected</code> <code>span</code>) to the C++ working paper.</p>

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

<p>LWG Poll 18: Apply the changes in
<a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2264r7.html">P2264R7</a>
(Make <code>assert()</code> macro user friendly for C and C++) to the C++ working paper.</p>

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

<h2>Comments on the Draft International Standard</h2>

<p>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.</p>

<ul>
<li><strong>ISO/CS 01:</strong> Accepted. We added references to the tables.</li>
<li><strong>ISO/CS 02:</strong> Accepted. We moved the explanations close to their point of use.</li>
<li><strong>ISO/CS 03:</strong> Accepted. We are now referring to a specific element, and keeping the dated reference.</li>
<li><strong>ISO/CS 04:</strong> Accepted.</li>
<li><strong>ISO/CS 05:</strong> 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".</li>
<li><strong>ISO/CS 06:</strong> Rejected: Moot by comment 05.</li>
<li><strong>ISO/CS 07:</strong> Rejected: Moot by comment 05.</li>
<li><strong>ISO/CS 08:</strong> Accepted. We reworded the reference to the Unicode standard to make the normative nature more obvious.</li>
<li><strong>ISO/CS 09:</strong> Accepted.</li>
<li><strong>ISO/CS 10:</strong> 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.</li>
<li><strong>ISO/CS 11:</strong> 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.</li>
<li><strong>ISO/CS 12:</strong> 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.</li>
<li><strong>ISO/CS 13:</strong> 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.</li>
<li><strong>ISO/CS 14:</strong> Accepted.</li>
<li><strong>ISO/CS 15:</strong> Accepted.</li>
<li><strong>ISO/CS 16:</strong> Rejected: The wording is correct as written. However, this is also mooted by comment 11, which deletes the wording in question.</li>
<li><strong>ISO/CS 17:</strong> Accepted.</li>
<li><strong>ISO/CS 18:</strong> Accepted.</li>
<li><strong>ISO/CS 19:</strong> Accepted.</li>
<li><strong>CA 20:</strong> n/a, comment was filed erroneously</li>
<li><strong>JP 21:</strong> Accepted. We added an example.</li>
<li><strong>JP 22:</strong> 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.</li>
<li><strong>JP 23:</strong> Accepted with modifications: The example is written as intended. The comments in the example have been amended to clarify the exposition.</li>
<li><strong>JP 24:</strong> Accepted.</li>
<li><strong>JP 25:</strong> Accepted.</li>
<li><strong>JP 26:</strong> Rejected: No consensus for change; the example deliberately introduces a facility to aid comprehension.</li>
<li><strong>JP 27:</strong> Rejected: No consensus for change; the example deliberately introduces a facility to aid comprehension.</li>
<li><strong>JP 28:</strong> Rejected: No consensus for change; the example deliberately introduces a facility to aid comprehension.</li>
<li><strong>ISO/CS 29:</strong> Accepted.</li>
<li><strong>ISO/CS 30:</strong> Accepted. We added a note that refers to the annex.</li>
<li><strong>ISO/CS 31:</strong> Accepted. We had previously used foreword wording from an older document.</li>
<li><strong>ISO/CS 32:</strong> 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.</li>
<li><strong>ISO/CS 33:</strong> 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.)</li>
<li><strong>ISO/CS 34:</strong> Accepted. Reworded to clarify.</li>
<li><strong>ISO/CS 35:</strong> Accepted.</li>
<li><strong>ISO/CS 36:</strong> 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.)</li>
<li><strong>ISO/CS 37:</strong> Rejected, please see comment 39.</li>
<li><strong>ISO/CS 38:</strong> 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.</li>
<li><strong>ISO/CS 39:</strong> 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.</li>
<li><strong>ISO/CS 40:</strong> Accepted. The logic that processed the notes was erroneous and failed to handle subclauses with more than 9 notes; this has been fixed.</li>
</ul>

<h2>Editorial changes</h2>

<h3>Major editorial changes</h3>

<p>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.</p>

<ul>
<li>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.</li>
<li>Table captions are now formatted in bold, and the table number is separated
from the caption by a dash.</li>
<li>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.</li>
<li>Definitions in Clause 3 (Terms and definitions) now contain cross references
to one another as appropriate.</li>
</ul>

<h3>Minor editorial changes</h3>

<p>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
<a href="https://github.com/cplusplus/draft/compare/n4964...n4971">draft sources on GitHub</a>.</p>

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

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

commit 84c526ebbda74553bf935f35f5594b8d5591bce5
Author: Casey Carter &lt;Casey@Carter.net&gt;
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&lt;string&gt;`.

commit 4a6f2e3f4791c44b8c8f32a75d0bebac4a7b6a9e
Author: Jens Maurer &lt;Jens.Maurer@gmx.net&gt;
Date:   Thu Nov 2 00:53:04 2023 +0100

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

commit dc6eed02986d9c3c6827c710adb577ba0809f939
Author: Krystian Stasiowski &lt;sdkrystian@gmail.com&gt;
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 &lt;sdkrystian@gmail.com&gt;
Date:   Tue Nov 7 01:16:28 2023 -0500

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

commit 90720a35b0c3d65488d9dc9ecea682c271f43d52
Author: A. Jiang &lt;de34@live.cn&gt;
Date:   Mon Oct 30 09:34:01 2023 +0800

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

commit e43aa89a4882f8080fb10c843cdb25c9740b65c7
Author: A. Jiang &lt;de34@live.cn&gt;
Date:   Mon Oct 30 09:36:24 2023 +0800

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

commit 80a8748fd401cfceee804bc96d2bfc518726d2e7
Author: Arthur O'Dwyer &lt;arthur.j.odwyer@gmail.com&gt;
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 &lt;arthur.j.odwyer@gmail.com&gt;
Date:   Thu Oct 12 18:58:39 2023 -0400

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

commit 2b5fc2936f12f73e975dbb9f34d3790fe0aa708f
Author: Matt Bentley &lt;mattreecebentley@gmail.com&gt;
Date:   Wed Nov 8 14:56:22 2023 +1300

    [sequence.reqmts] Remove misleading, oversimplified informative text

commit 11334c71244a046f0c29b01dfd79b35f6fea8cc4
Author: Eisenwave &lt;me@eisenwave.net&gt;
Date:   Fri Sep 1 09:29:01 2023 +0200

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

commit 4feefb62e0419bb52c678389163729959785d44a
Author: Jan Schultke &lt;me@eisenwave.net&gt;
Date:   Wed Nov 8 02:59:01 2023 +0100

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

commit a700e3b87b00d2673b3cded0a61201d09dfc051a
Author: S. B. Tam &lt;cpplearner@outlook.com&gt;
Date:   Wed Nov 8 10:01:46 2023 +0800

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

    P1383R2 "More constexpr for &lt;cmath&gt; and &lt;complex&gt;" 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 &lt;arthur.j.odwyer@gmail.com&gt;
Date:   Tue Sep 27 15:36:08 2022 -0400

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

commit bc3cb41a36dfff0d2358f4e294be9636590e680e
Author: Krystian Stasiowski &lt;sdkrystian@gmail.com&gt;
Date:   Tue Nov 7 21:08:15 2023 -0500

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

commit 82b2ba6f6245e717cb002a9a836117a918aab36a
Author: Patrick Johnston &lt;gcupcakekid@gmail.com&gt;
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 &lt;me@eisenwave.net&gt;
Date:   Thu Oct 12 20:51:57 2023 +0200

    [basic.lval] turn reference paragraph into note

commit a03b8b70d6666b67d27c801b68d41683e987e929
Author: Alisdair Meredith &lt;alisdairm@me.com&gt;
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 &lt;alisdairm@me.com&gt;
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 &lt;language.lawyer@gmail.com&gt;
Date:   Wed Aug 23 01:35:22 2023 +0500

    [intro.races] Make reading atomic objects nondeterministic

commit df26017a6bfd74d794345ea9313eae1efacbf7c9
Author: Jan Schultke &lt;me@eisenwave.net&gt;
Date:   Wed Nov 8 03:31:10 2023 +0100

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

commit cc69fc0dd6b1a2fdc834bade578acb84cc7d2cfa
Author: A. Jiang &lt;de34@live.cn&gt;
Date:   Wed Nov 8 10:54:52 2023 +0800

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

commit 60e280391a06b8d27f778a56310b0827109623aa
Author: Eisenwave &lt;me@eisenwave.net&gt;
Date:   Thu Aug 31 00:19:24 2023 +0200

    [cmath.syn] fix misaligned parameter lists

commit 646bfb2a060e3c7f490f6c4672ee93a0cbaf6d0d
Author: Alisdair Meredith &lt;alisdairm@me.com&gt;
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 &lt;67143766+hewillk@users.noreply.github.com&gt;
Date:   Thu Nov 9 00:01:38 2023 +0800

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

commit 07ae51af31587ac533b1b39c95777ecb725dcab0
Author: A. Jiang &lt;de34@live.cn&gt;
Date:   Wed Jan 25 18:22:53 2023 +0800

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

commit f3059744c84f561f8ead4c5d117bc1160c43b7e2
Author: Jonathan Wakely &lt;cxx@kayari.org&gt;
Date:   Wed Nov 8 23:52:44 2023 +0000

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

commit 8b38857b22f6518a41e506e4c9b2e9a1792a0fbd
Author: A. Jiang &lt;de34@live.cn&gt;
Date:   Tue Oct 10 09:40:20 2023 +0800

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

commit fbb1a6ebbd1f78e644df2dbcb3ce31250410779e
Author: onihusube &lt;44743040+onihusube@users.noreply.github.com&gt;
Date:   Fri Nov 10 08:36:12 2023 +0900

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

commit 10e2799f5d524dd941d424dfd08927c77a6b87f1
Author: Alisdair Meredith &lt;alisdairm@me.com&gt;
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 &lt;barry.revzin@gmail.com&gt;
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 &lt;mfh@live.at&gt;
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 &lt;mfh@live.at&gt;
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 &lt;bbi5291@gmail.com&gt;
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 &lt;me@eisenwave.net&gt;
Date:   Thu Jul 6 13:41:56 2023 +0200

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

commit f48f316c42c6cb67058d9f9106852154497b4516
Author: Jan Schultke &lt;me@eisenwave.net&gt;
Date:   Fri Nov 10 06:57:17 2023 +0100

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

commit 1ec1d9e6fa98734b3edf20f6c2217a4482f78103
Author: Hewill Kang &lt;67143766+hewillk@users.noreply.github.com&gt;
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 &lt;me@eisenwave.net&gt;
Date:   Sat Aug 19 15:57:39 2023 +0200

    [expr.sizeof] use constexpr member in example

commit b1f922a126dcda78acb4bae055843e7a7321fe1d
Author: Eisenwave &lt;me@eisenwave.net&gt;
Date:   Wed Aug 23 13:42:39 2023 +0200

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

commit 54e465a17adfcba56a57ff2fefe43ec898725efb
Author: Eisenwave &lt;me@eisenwave.net&gt;
Date:   Wed Aug 23 13:43:46 2023 +0200

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

commit 3c5b5b0c58d0440233d992e1a0791a449936f203
Author: Eisenwave &lt;me@eisenwave.net&gt;
Date:   Wed Aug 23 13:44:40 2023 +0200

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

commit 9483cb7cf6973689ad563d30778d8da2dff42a8d
Author: Jonathan Wakely &lt;cxx@kayari.org&gt;
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 &lt;100177227+lprv@users.noreply.github.com&gt;
Date:   Mon Jul 24 16:19:01 2023 +0000

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

commit d8b72f0ceb36b3537ef576ab216d588642e332ab
Author: lprv &lt;100177227+lprv@users.noreply.github.com&gt;
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 &lt;oliver.rosten@gmail.com&gt;
Date:   Fri Nov 10 18:12:06 2023 +0000

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

commit d97603a90d2fcfeec2caf4371ca9e6c8f562842a
Author: A. Jiang &lt;de34@live.cn&gt;
Date:   Sat Nov 11 03:21:17 2023 +0800

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

commit f474227b69d10350999a5fc63503725421a89954
Author: Geng Cheng &lt;xmcgcg@qq.com&gt;
Date:   Sat Nov 11 10:25:39 2023 +0800

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

commit f5fdfe453e5a1e0370f2cb28bfc2dfeecab6370e
Author: Alisdair Meredith &lt;alisdairm@me.com&gt;
Date:   Wed Nov 8 15:12:16 2023 -1000

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

commit 38dfe3db0f08bd09a2b445ba82e83f7caae28d94
Author: A. Jiang &lt;de34@live.cn&gt;
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 &lt;67143766+hewillk@users.noreply.github.com&gt;
Date:   Tue Nov 14 02:27:01 2023 +0800

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

commit ecbeb5ad4e4c0ac1d0cdb5e8dd01daab8df8d62e
Author: Alisdair Meredith &lt;alisdairm@me.com&gt;
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 &lt;tkoeppe@google.com&gt;
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 &lt;lewissbaker@users.noreply.github.com&gt;
Date:   Thu Nov 16 10:36:25 2023 +1030

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

commit 5c0103c0a656cbcd725780388b0879e992a1b21a
Author: Jonathan Wakely &lt;cxx@kayari.org&gt;
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 &lt;tkoeppe@google.com&gt;
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 &lt;Jens.Maurer@gmx.net&gt;
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 &lt;tkoeppe@google.com&gt;
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 &lt;Jens.Maurer@gmx.net&gt;
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 &lt;tkoeppe@google.com&gt;
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 &lt;tkoeppe@google.com&gt;
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 &lt;tkoeppe@google.com&gt;
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 &lt;tkoeppe@google.com&gt;
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 &lt;cxx@kayari.org&gt;
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 &lt;cassio.neri@gmail.com&gt;
Date:   Mon Nov 27 19:47:29 2023 +0000

    [expected.general] Fix description of expected&lt;T, E&gt; (issue #6714.)

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

    [class.eq] Fix the return value of a defaulted == operator function
</code></pre>
</body>
</html>
