diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 925ac7e8fe..e6fa6d7203 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -17,58 +17,57 @@ jobs: strategy: matrix: cfg: - - { name: 'Linux', os: 'ubuntu-22.04' } - - { name: 'MacOS', os: 'macos-13' } + - { name: 'Linux', os: 'ubuntu-24.04' } + - { name: 'MacOS', os: 'macos-15' } steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: install GNU tools - if: matrix.cfg.os == 'macos-13' + if: matrix.cfg.os == 'macos-15' run: | brew install gnu-sed - echo "/usr/local/opt/gnu-sed/libexec/gnubin" >> ${GITHUB_PATH} + echo "/opt/homebrew/opt/gnu-sed/libexec/gnubin" >> ${GITHUB_PATH} - name: check-source.sh run: ../tools/check-source.sh - name: update brew - if: matrix.cfg.os == 'macos-13' - run: | - brew update + if: matrix.cfg.os == 'macos-15' + run: brew update - name: update-apt-cache - if: matrix.cfg.os == 'ubuntu-22.04' + if: matrix.cfg.os == 'ubuntu-24.04' run: sudo apt-get update - name: install (Linux) - if: matrix.cfg.os == 'ubuntu-22.04' + if: matrix.cfg.os == 'ubuntu-24.04' run: sudo apt-get install latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended lmodern - name: install (MacOS) - if: matrix.cfg.os == 'macos-13' + if: matrix.cfg.os == 'macos-15' run: | brew install basictex eval "$(/usr/libexec/path_helper)" echo "PATH=${PATH}" >> ${GITHUB_ENV} sudo tlmgr update --self - sudo tlmgr install latexmk isodate substr relsize ulem fixme rsfs extract layouts enumitem l3packages l3kernel imakeidx splitindex xstring + sudo tlmgr install latexmk isodate substr relsize ulem fixme rsfs environ layouts enumitem l3packages l3kernel imakeidx splitindex xstring - name: make (Linux) - if: matrix.cfg.os == 'ubuntu-22.04' + if: matrix.cfg.os == 'ubuntu-24.04' run: make quiet - name: make (MacOS) - if: matrix.cfg.os == 'macos-13' + if: matrix.cfg.os == 'macos-15' run: make full - name: check-output.sh run: ../tools/check-output.sh - name: upload PDF - if: matrix.cfg.os == 'ubuntu-22.04' - uses: actions/upload-artifact@v3 + if: matrix.cfg.os == 'ubuntu-24.04' + uses: actions/upload-artifact@v4 with: name: draft-snapshot path: source/std.pdf diff --git a/.gitorder b/.gitorder index abebabaa77..edc39fbf98 100644 --- a/.gitorder +++ b/.gitorder @@ -5,6 +5,7 @@ source/macros.tex source/tables.tex source/cover-*.tex source/front.tex +source/preface.tex source/intro.tex source/lex.tex source/basic.tex @@ -21,22 +22,24 @@ source/lib-intro.tex source/support.tex source/concepts.tex source/diagnostics.tex +source/memory.tex +source/meta.tex source/utilities.tex -source/strings.tex source/containers.tex source/iterators.tex source/ranges.tex source/algorithms.tex +source/strings.tex +source/text.tex source/numerics.tex source/time.tex -source/locales.tex source/iostreams.tex -source/regex.tex -source/atomics.tex source/threads.tex +source/exec.tex source/grammar.tex source/limits.tex source/compatibility.tex source/future.tex +source/uax31.tex source/back.tex source/xrefdelta.tex diff --git a/papers/n4972.html b/papers/n4972.html new file mode 100644 index 0000000000..61df993043 --- /dev/null +++ b/papers/n4972.html @@ -0,0 +1,846 @@ + + +
+ + +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
Thanks to all those who have submitted editorial +issues +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.
+ +All motions were applied cleanly, and the following additional changes applied +for the sake of integration:
+ +**this
to *val
, and
+P2407R5
+changed value()
to **this
. This has been reconciled by changing the
+latter to *val
, too.__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.
+ +CWG Poll 1: Accept as a Defect Report and apply the proposed resolution of all issues in +P3046R0 +(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 +(Template parameter initialization) to the C++ Working Paper.
+ +CWG Poll 3: Apply the changes in +P2662R3 +(Pack Indexing) to the C++ Working Paper.
+ +CWG Poll 4: Apply the changes in +P2864R2 +(Remove Deprecated Arithmetic Conversion on Enumerations From C++26) to the C++ Working Paper.
+ +CWG Poll 5 was withdrawn.
+ +LWG Poll 1: Apply the changes for all Ready and Tentatively Ready issues in +P3040R0 +(C++ Standard Library Issues to be moved in Kona, Nov. 2023) to the C++ working paper.
+ +LWG Poll 2: Apply the changes in +P0543R3 +(Saturation arithmetic) to the C++ working paper.
+ +LWG Poll 3: Apply the changes in +P2407R5 +(Freestanding Library: Partial Classes) to the C++ working paper.
+ +LWG Poll 4: Apply the changes in +P2546R5 +(Debugging Support) to the C++ working paper.
+ +LWG Poll 5: Accept as a Defect Report and apply the changes in +P2905R2 +(Runtime format strings) to the C++ working paper.
+ +LWG Poll 6: Apply the changes in +P2918R2 +(Runtime format strings II) to the C++ working paper.
+ +LWG Poll 7: Accept as a Defect Report and apply the changes in +P2909R4 +(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
+(A new specification for std::generate_canonical
) to the C++ working paper.
LWG Poll 9: Apply the changes in
+P2447R6
+(std::span
over an initializer list) to the C++ working paper.
LWG Poll 10: Apply the changes in
+P2821R5
+(span.at()
) to the C++ working paper.
LWG Poll 11: Apply the changes in
+P2868R3
+(Remove Deprecated std::allocator
Typedef From C++26) to the C++ working paper.
LWG Poll 12: Apply the changes in
+P2870R3
+(Remove basic_string::reserve()
From C++26) to the C++ working paper.
LWG Poll 13: Apply the changes in +P2871R3 +(Remove Deprecated Unicode Conversion Facets from C++26) to the C++ working paper.
+ +LWG Poll 14: Apply the changes in
+P2819R2
+(Add tuple protocol to complex
) to the C++ working paper.
LWG Poll 15: Apply the changes in
+P2937R0
+(Freestanding: Remove strtok
) to the C++ working paper.
LWG Poll 16: Apply the changes in
+P2833R2
+(Freestanding Library: inout
expected
span
) to the C++ working paper.
LWG Poll 17: Accept as a Defect Report and apply the changes in
+P2836R1
+(std::basic_const_iterator
should follow its underlying type's convertibility) to the C++ working paper.
LWG Poll 18: Apply the changes in
+P2264R7
+(Make assert()
macro user friendly for C and C++) to the C++ working paper.
LWG Poll 19: Apply the changes in +P1673R13 +(A free function linear algebra interface based on the BLAS) to the C++ working paper.
+ +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.
+ +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.
+ +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.
+ +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
+
+
+
diff --git a/papers/n4972.md b/papers/n4972.md
new file mode 100644
index 0000000000..ed66878372
--- /dev/null
+++ b/papers/n4972.md
@@ -0,0 +1,699 @@
+# 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 `Date: 2024-04-16
+ +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
Thanks to all those who have submitted editorial +issues +and to those who have provided pull requests with fixes.
+ +All motions were applied cleanly.
+ +CWG Poll 1. Accept as Defect Reports and apply the proposed resolutions of all issues in +P3196R0 +(Core Language Working Group "ready" Issues for the March, 2024 meeting) to the C++ Working Paper.
+ +CWG Poll 2. Apply the changes in +P2748R5 +(Disallow Binding a Returned Glvalue to a Temporary) to the C++ Working Paper.
+ +CWG Poll 3. Accept as a Defect Report and apply the changes in P3106R1 (Clarifying rules for brace elision in aggregate initialization) to the C++ Working Paper, resolving core issue 2149.
+ +CWG Poll 4. Apply the changes in +P0609R3 +(Attributes for Structured Bindings) to the C++ Working Paper.
+ +CWG Poll 5. Accept as a Defect Report and apply the changes in +P3034R1 +(Module Declarations Shouldn’t be Macros) to the C++ Working Paper.
+ +CWG Poll 6. Accept as a Defect Report and apply the changes in +P2809R3 +(Trivial infinite loops are not Undefined Behavior) to the C++ Working Paper.
+ +CWG Poll 7. Apply the changes in +P2795R5 +(Erroneous behaviour for uninitialized reads) to the C++ Working Paper.
+ +CWG Poll 9. Apply the changes in
+P2573R2
+(= delete("should have a reason");
) to the C++ Working Paper.
CWG Poll 10. Apply the changes in +P2893R3 +(Variadic friends) to the C++ Working Paper.
+ +CWG Poll 8 was withdrawn.
+ +LWG Poll 1: Apply the changes for all Ready and Tentatively Ready issues in +P3180R0 +(C++ Standard Library Ready Issues to be moved in Tokyo, Mar. 2024) to the C++ working paper.
+ +LWG Poll 2: Apply the changes in
+P2875R4
+(Undeprecate polymorphic_allocator::destroy
for C++26) to the C++ working paper.
LWG Poll 3: Apply the changes in
+P2867R2
+(Remove Deprecated strstream
s From C++26) to the C++ working paper.
LWG Poll 4: Apply the changes in
+P2869R4
+(Remove Deprecated shared_ptr
Atomic Access APIs from C++26) to the C++ working paper.
LWG Poll 5: Apply the changes in
+P2872R3
+(Remove wstring_convert
From C++26) to the C++ working paper.
LWG Poll 6: Accept as a Defect Report and apply the changes in
+P3107R5
+(Permit an efficient implementation of std::print
) to the C++ working paper.
LWG Poll 7: Apply the changes in
+P3142R0
+(Printing Blank Lines with println
) to the C++ working paper.
LWG Poll 8: Apply the changes in
+P2845R8
+(Formatting of std::filesystem::path
) to the C++ working paper.
LWG Poll 9: Apply the changes in +P0493R5 +(Atomic minimum/maximum) to the C++ working paper.
+ +LWG Poll 10: Apply the changes in
+P2542R8
+(views::concat
) to the C++ working paper.
LWG Poll 11: Apply the changes in +P2591R5 +(Concatenation of strings and string views) to the C++ working paper.
+ +LWG Poll 12: Apply the changes in +P2248R8 +(Enabling list-initialization for algorithms) to the C++ working paper.
+ +LWG Poll 13: Apply the changes in
+P2810R4
+(is_debugger_present
is_replaceable
) to the C++ working paper.
LWG Poll 14: Apply the changes in +P1068R11 +(Vector API for random number generation) to the C++ working paper.
+ +LWG Poll 16: Apply the changes in
+P2944R3
+(Comparisons for reference_wrapper
) to the C++ working paper.
LWG Poll 17: Apply the changes in
+P2642R6
+(Padded mdspan
layouts) to the C++ working paper.
LWG Poll 18: Apply the changes in
+P3029R1
+(Better mdspan
's CTAD) to the C++ working paper.
LWG Poll 15 was withdrawn.
+ +There have not been any major editorial changes since the last working draft.
+ +A log of editorial fixes made to the working draft since N4971 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.
+ +commit 08649a5a81ba91d8597c263b99dc80ed71767940
+Author: Jan Schultke <me@eisenwave.net>
+Date: Fri Dec 22 11:33:39 2023 +0100
+
+ [stmt.expr] Use \grammarterm for expression (#6469)
+
+commit acb68797051c9a6a5f51e4adb5091b376f1ba13a
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Mon Jan 1 16:23:56 2024 +0100
+
+ [basic.life] Fix indentation in example (#6727)
+
+commit f6692f25130834672ba5a212f739100669abbbe8
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Tue Jan 2 20:21:54 2024 +0100
+
+ [basic.scope.pdecl,basic.types.general] Remove extra whitespace (#6756)
+
+commit 7ddcd43c96589fc13342ac4cee549da75360fde7
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Fri Jan 5 15:41:01 2024 -0500
+
+ [basic.scope.param] Add missing \grammarterm for requires-expression (#6759)
+
+commit 29c0e4882a1ae62e7cd5f8d3fabcb22ae6153219
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon Dec 18 17:22:30 2023 +0100
+
+ [std] Remove problematic 'requires' phrases from notes.
+
+ Only specific phrases involving the word "required" are problematic,
+ namely when they appear to establish a normative requirement. They
+ have been reworded, often by replacing "is required" with "needs",
+ sometimes with slightly larger edits.
+
+commit 43fc5a16147e720568b68ecae77f12fa3fb15102
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Fri Jan 5 15:32:55 2024 +0000
+
+ [std] Reword "necessary", "permitted", "allowed", "may" in notes.
+
+ This is so that notes do not (inappropriately) state requirements or
+ permissions.
+
+commit 74433025763f83bbccfb001dab8aa084647ffb2f
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Thu Jan 11 19:11:17 2024 +0100
+
+ [basic.def] Fix punctuation (#6766)
+
+commit b67e0b70e88abf65d9b49875133c68d55744b1de
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Fri Jan 12 12:53:10 2024 +0000
+
+ [text.encoding.overview] Use same parameter names as detailed description (#6768)
+
+commit bc5a56b6e9cadd030d48066601fc8098382c7469
+Author: Casey Carter <Casey@Carter.net>
+Date: Mon Jan 15 11:19:13 2024 -0800
+
+ [exception] Paragraph two is no longer universally true
+
+ We recently added `bad_expected_access<void>` to the Standard Library, which derives from `exception`, but does not have "the following publicly accessible member functions, each of them having a non-throwing exception specification." For clarity, we should point out that this provision is not universal.
+
+commit 2055c2feabee6ec9df24ea07f8451ad33618be45
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Tue Jan 16 09:20:44 2024 +0100
+
+ [zombie.names] Remove superfluous period (#6774)
+
+commit 8410aac1b84ec161b6990441acde53185f958135
+Author: Daniel Krügler <daniel.kruegler@gmail.com>
+Date: Sun Jan 21 22:39:02 2024 +0100
+
+ [tuple.helper] Paragraph 1 not universally true (#6777)
+
+ [tuple.helper] p1 defines a general requirement that all specializations of `tuple_size`
+ shall meet the *Cpp17UnaryTypeTrait* requirements, but p4 actually defines a
+ special situation where this requirement is not met ("Otherwise, it has no member value").
+ We have the same seemingly contradiction in [depr.tuple] p2. For clarity, we should
+ point out that this provision is not universal.
+
+commit 4fe9190fa05c4fb4e83c1a1ba68aa12aa49542e9
+Author: S. B. Tam <cpplearner@outlook.com>
+Date: Sat Jan 27 14:38:55 2024 +0800
+
+ [locale.ctype.members] Add missing parameter name
+
+commit 74f5f61cac56a4eca5389a51754fe7e60e6b7449
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Sat Jan 27 11:26:37 2024 +0000
+
+ [tuple.cnstr] Do not use code font for cardinal number 1 (#6785)
+
+commit cb8ff12806b67990665100baaacb9a16040bce8c
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Sat Jan 27 17:11:23 2024 +0100
+
+ [container.alloc.reqmts] End note with period (#6787)
+
+commit 70b99af0dfcb9cae82bcd97c7b24a2e84edfb2cd
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Sat Jan 27 18:03:16 2024 +0100
+
+ [class.mem.general,class.mfct.non.static] End note with period (#6778)
+
+commit db80a4612af561e8473fd8fb3724ae9db2c72578
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Mon Feb 5 15:51:03 2024 +0000
+
+ [rand.dist.samp.plinear] Fix copy & paste error in Mandates (#6794)
+
+ This error was present in the incoming P1719R2 paper (Mandating the
+ Standard Library: Clause 26 - Numerics Library), but is obviously bogus.
+ There is no UnaryOperation type in that constructor. The correct
+ requirement is taken from the corresponding constructor in
+ [rand.dist.samp.pconst].
+
+commit e51d5733b1bd1531d6e3b63617d12414a56678c0
+Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
+Date: Wed Feb 7 10:37:06 2024 -0500
+
+ [temp.res.general] Grammatical parallelism: remove a stray "a" (#6796)
+
+commit 8238252bcec14f76e97133db32721beaec5c749b
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Thu Feb 8 06:59:10 2024 +0100
+
+ [iterator.concept.winc] Fix typo (#6800)
+
+commit 19caa61068d3f3aa2453e1ba7256536b8464c25c
+Author: A. Jiang <de34@live.cn>
+Date: Thu Dec 28 10:07:15 2023 +0800
+
+ [mem.res.private] Say `*this` instead of improper `this`
+
+commit 419190062806ae257e5efe7057551fd626bd9516
+Author: A. Jiang <de34@live.cn>
+Date: Thu Dec 28 10:08:04 2023 +0800
+
+ [mem.res.monotonic.buffer.mem] Say `*this` instead of improper `this`
+
+commit 6ecda0b20664fc6b8450157e1cd9f0580c32e5e1
+Author: A. Jiang <de34@live.cn>
+Date: Thu Dec 28 10:09:08 2023 +0800
+
+ [re.traits] Say `*this` instead of improper `this`
+
+commit 9305893dfd250d876edf4555cf96c665e2e71e75
+Author: Casey Carter <Casey@Carter.net>
+Date: Thu Feb 15 13:16:33 2024 -0800
+
+ [thread.once.callonce] INVOKE is evaluated, not called (#6810)
+
+commit 3616a40ded794e94181a5405672b1c36f7774684
+Author: Jan Schultke <me@eisenwave.net>
+Date: Wed Feb 21 19:05:13 2024 +0100
+
+ [temp.pre] Add comma after introductory clause (#6814)
+
+commit 30debb0c5d5dc42fa36864aac76b82f49319ad84
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed Feb 21 21:39:56 2024 +0100
+
+ [temp.constr.order] Move index entry to correct paragraph (#6812)
+
+commit fb0277664fd53efea93d95202784f78aea610f31
+Author: Jan Schultke <me@eisenwave.net>
+Date: Thu Feb 22 20:28:15 2024 +0100
+
+ [semaphore.syn] Add binary_semaphore to index (#6781)
+
+commit 090840673ee58d3c1e8d2844d3c716ee5ce245bc
+Author: Jan Schultke <me@eisenwave.net>
+Date: Thu Feb 22 20:31:19 2024 +0100
+
+ [format.parse.ctx] Improve readability of paragraphs 12 and 14 (#6815)
+
+commit a5825b1905b06d730a46e64fb5b379f48cbc6e51
+Author: Jan Schultke <me@eisenwave.net>
+Date: Thu Feb 22 20:33:18 2024 +0100
+
+ [format.parse.ctx] Add comma (#6817)
+
+commit 8c8e05d7ff6cda6329ca898e7a270547a85675d7
+Author: Jan Schultke <me@eisenwave.net>
+Date: Thu Feb 22 20:35:21 2024 +0100
+
+ [format.parse.ctx] Move non-normative explanations of errors into notes (#6816)
+
+commit 48f90026631638c91b3d8138bed49cd0450380c7
+Author: Eisenwave <me@eisenwave.net>
+Date: Wed Feb 28 10:23:51 2024 +0100
+
+ [stmt.while] Add comma after introductory phrase
+
+commit d5ad3794937429b1410071037af9ddfb0aa8c861
+Author: Eisenwave <me@eisenwave.net>
+Date: Wed Feb 28 10:24:26 2024 +0100
+
+ [stmt.do] Add comma after introductory phrase
+
+commit 78ecd23f22f00be4bffaf806a6747417ce2150a2
+Author: Jan Schultke <me@eisenwave.net>
+Date: Wed Feb 28 18:06:26 2024 +0100
+
+ [stmt.jump] Add cross-reference to [stmt.dcl] for destruction of local variables (#6829)
+
+commit 66b6b97c8f3969f96e3ca8df1180c18b1c57af8c
+Author: Jan Schultke <me@eisenwave.net>
+Date: Wed Feb 28 21:50:50 2024 +0100
+
+ [expr.dynamic.cast] Add comma after conditional clause (#6830)
+
+commit 23430d7e605d62f5a4a1769611e3c415d6510b65
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Fri Mar 1 11:06:34 2024 +0100
+
+ [bibliography] Replace HTTP link with HTTPS link (#6831)
+
+commit 20c2851a3c8f480a017cef6602b1b6a4d32bc5e4
+Author: Eisenwave <me@eisenwave.net>
+Date: Fri Mar 1 16:03:04 2024 +0100
+
+ [time.parse] Hyphenate argument-dependent lookup
+
+commit e0287d17110f86e3724bda5ebe74de249508490f
+Author: Eisenwave <me@eisenwave.net>
+Date: Fri Mar 1 16:04:02 2024 +0100
+
+ [diff.cpp17.temp] Hyphenate argument-dependent lookup
+
+commit ceff4ea83b511be01a8e1756386ce6a2e06e323c
+Author: Jan Schultke <me@eisenwave.net>
+Date: Fri Mar 1 18:06:00 2024 +0100
+
+ [headers] Strike incorrect quote of subclause heading (#6832)
+
+commit 9878cfbea12b517d32c5af1bbfa7c8b8c4ff9cab
+Author: Jan Schultke <me@eisenwave.net>
+Date: Sun Mar 3 08:42:45 2024 +0100
+
+ [handler.functions] Add cross-reference to [intro.races] (#6845)
+
+commit 9ec133c8e51aae98297255563250a2f6656e4636
+Author: lprv <100177227+lprv@users.noreply.github.com>
+Date: Tue Mar 19 15:36:51 2024 +0000
+
+ [time.hash] Fix spelling of 'Cpp17Hash'
+
+commit 2b7cd6e8be2bc8a9ae97da9bf03ae4efa7fe1a9c
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Tue Apr 16 20:03:29 2024 +0800
+
+ [expos.only.entity] Add/fix \expos for exposition-only names (#6924)
+
+commit aa21c812f629975d5d25d4639053482f346751a8
+Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
+Date: Tue Apr 16 08:07:44 2024 -0400
+
+ [dcl.type.elab] Move note to separate paragraph
+
+ Also clarify that the next paragraph is talking about any elaborated-type-specifier at all, not just the ones in p4.
+
+commit 397384c90e3ead9f832a3a269335fbfe53328180
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Fri Feb 16 06:51:03 2024 +0100
+
+ [rand.adapt.ibits,rand.dist.pois.poisson] Add namespace std in class template
+
+ [rand.adapt.ibits] 28.5.5.3-4
+ [rand.dist.pois.poisson] 28.5.9.4.1-1
+
+commit fbf3d76683d269a0a5313fb69b5aa483ddd3a18a
+Author: Jan Schultke <me@eisenwave.net>
+Date: Thu Feb 22 21:41:42 2024 +0100
+
+ [expr.unary.op] remove redundant value category wording
+
+commit 498cd7720bb2e53fb323144f956e67900a054e34
+Author: Daniel Krügler <daniel.kruegler@gmail.com>
+Date: Sun Feb 4 17:57:38 2024 +0100
+
+ [iterator.requirements.general] Clarify that "constexpr iterator" is a requirement to be met
+
+ [iterator.requirements.general] p16 says "Iterators are called _constexpr iterators_ [..]", but all referencing sections say "meet the constexpr iterator requirements". For clarity, we should reword the definition to make it clear that this is a named requirement.
+
+commit 89cd1467f354a2b9b05ac57ad1f90f483aab22b9
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Sun Jan 28 13:54:17 2024 +0800
+
+ [range.drop.overview] Remove redundant \iref for subrange
+
+ ..which already existed in the previous bullet.
+
+commit bee055de1c5e23ce0b301138998633dc64169b4a
+Author: A. Jiang <de34@live.cn>
+Date: Thu Nov 23 09:33:39 2023 +0800
+
+ [dcl.init.ref] Change "function lvalue" to "lvalue of function type"
+
+commit ce31d424ba6753be1c87a4cf3face42f89b9e010
+Author: A. Jiang <de34@live.cn>
+Date: Thu Nov 23 09:36:28 2023 +0800
+
+ [over.ics.ref] Simplify wording by not using "function lvalue"
+
+commit 2a07c133732dcc7ea57aeb32612b15b50837a4df
+Author: A. Jiang <de34@live.cn>
+Date: Thu Nov 23 09:38:41 2023 +0800
+
+ [over.ics.rank] Change "function lvalue" to "lvalue of function type"
+
+commit 7675c4c1abf1986241e8a20463fd71f2841d3c39
+Author: Eisenwave <me@eisenwave.net>
+Date: Fri Sep 1 10:27:25 2023 +0200
+
+ [res.on.exception.handling] use grammarterm instead of informal term and add ref
+
+
+
diff --git a/papers/n4982.md b/papers/n4982.md
new file mode 100644
index 0000000000..92a68b0900
--- /dev/null
+++ b/papers/n4982.md
@@ -0,0 +1,472 @@
+# N4982 Editors' Report -- Programming Languages -- C++
+
+Date: 2024-04-16
+
+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.
+
+## New papers
+
+ * [N4981](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/n4981.pdf) is the
+ current working draft for C++26. It replaces
+ [N4971](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/n4971.pdf).
+ * N4982 is this Editors' Report.
+
+## Motions incorporated into working draft
+
+### Notes on motions
+
+All motions were applied cleanly.
+
+### Core working group polls
+
+CWG Poll 1. Accept as Defect Reports and apply the proposed resolutions of all issues in
+[P3196R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3196r0.html)
+(Core Language Working Group "ready" Issues for the March, 2024 meeting) to the C++ Working Paper.
+
+CWG Poll 2. Apply the changes in
+[P2748R5](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2748r5.html)
+(Disallow Binding a Returned Glvalue to a Temporary) to the C++ Working Paper.
+
+CWG Poll 3. Accept as a Defect Report and apply the changes in [P3106R1](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3106r1.html) (Clarifying rules for brace elision in aggregate initialization) to the C++ Working Paper, resolving core issue 2149.
+
+CWG Poll 4. Apply the changes in
+[P0609R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0609r3.pdf)
+(Attributes for Structured Bindings) to the C++ Working Paper.
+
+CWG Poll 5. Accept as a Defect Report and apply the changes in
+[P3034R1](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3034r1.html)
+(Module Declarations Shouldn’t be Macros) to the C++ Working Paper.
+
+CWG Poll 6. Accept as a Defect Report and apply the changes in
+[P2809R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2809r3.html)
+(Trivial infinite loops are not Undefined Behavior) to the C++ Working Paper.
+
+CWG Poll 7. Apply the changes in
+[P2795R5](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2795r5.html)
+(Erroneous behaviour for uninitialized reads) to the C++ Working Paper.
+
+CWG Poll 9. Apply the changes in
+[P2573R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2573r2.html)
+(`= delete("should have a reason");`) to the C++ Working Paper.
+
+CWG Poll 10. Apply the changes in
+[P2893R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2893r3.html)
+(Variadic friends) to the C++ Working Paper.
+
+CWG Poll 8 was withdrawn.
+
+### Library working group polls
+
+LWG Poll 1: Apply the changes for all Ready and Tentatively Ready issues in
+[P3180R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3180r0.html)
+(C++ Standard Library Ready Issues to be moved in Tokyo, Mar. 2024) to the C++ working paper.
+
+LWG Poll 2: Apply the changes in
+[P2875R4](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2875r4.pdf)
+(Undeprecate `polymorphic_allocator::destroy` for C++26) to the C++ working paper.
+
+LWG Poll 3: Apply the changes in
+[P2867R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2867r2.html)
+(Remove Deprecated `strstream`s From C++26) to the C++ working paper.
+
+LWG Poll 4: Apply the changes in
+[P2869R4](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2869r4.pdf)
+(Remove Deprecated `shared_ptr` Atomic Access APIs from C++26) to the C++ working paper.
+
+LWG Poll 5: Apply the changes in
+[P2872R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2872r3.pdf)
+(Remove `wstring_convert` From C++26) to the C++ working paper.
+
+LWG Poll 6: Accept as a Defect Report and apply the changes in
+[P3107R5](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3107r5.html)
+(Permit an efficient implementation of `std::print`) to the C++ working paper.
+
+LWG Poll 7: Apply the changes in
+[P3142R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3142r0.pdf)
+(Printing Blank Lines with `println`) to the C++ working paper.
+
+LWG Poll 8: Apply the changes in
+[P2845R8](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2845r8.html)
+(Formatting of `std::filesystem::path`) to the C++ working paper.
+
+LWG Poll 9: Apply the changes in
+[P0493R5](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0493r5.pdf)
+(Atomic minimum/maximum) to the C++ working paper.
+
+LWG Poll 10: Apply the changes in
+[P2542R8](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2542r8.html)
+(`views::concat`) to the C++ working paper.
+
+LWG Poll 11: Apply the changes in
+[P2591R5](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2591r5.html)
+(Concatenation of strings and string views) to the C++ working paper.
+
+LWG Poll 12: Apply the changes in
+[P2248R8](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2248r8.html)
+(Enabling list-initialization for algorithms) to the C++ working paper.
+
+LWG Poll 13: Apply the changes in
+[P2810R4](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2810r4.html)
+(`is_debugger_present` `is_replaceable`) to the C++ working paper.
+
+LWG Poll 14: Apply the changes in
+[P1068R11](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p1068r11.html)
+(Vector API for random number generation) to the C++ working paper.
+
+LWG Poll 16: Apply the changes in
+[P2944R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2944r3.html)
+(Comparisons for `reference_wrapper`) to the C++ working paper.
+
+LWG Poll 17: Apply the changes in
+[P2642R6](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2642r6.pdf)
+(Padded `mdspan` layouts) to the C++ working paper.
+
+LWG Poll 18: Apply the changes in
+[P3029R1](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3029r1.html)
+(Better `mdspan`'s CTAD) to the C++ working paper.
+
+LWG Poll 15 was withdrawn.
+
+## Editorial changes
+
+### Major editorial changes
+
+There have not been any major editorial changes since the last working draft.
+
+### Minor editorial changes
+
+A log of editorial fixes made to the working draft since N4971 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/n4971...n4981).
+
+ commit 08649a5a81ba91d8597c263b99dc80ed71767940
+ Author: Jan Schultke Date: 2024-07-16
+ +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
Thanks to all those who have submitted editorial +issues +and to those who have provided pull requests with fixes.
+ +All passed motions from CWG and LWG motions 1 through 9 were applied cleanly. +LWG motions 10, 11, and 12 have not yet been applied due to a lack of time, +but will be included in the next draft.
+ +In CWG Poll 1, issue CWG2144 contains no wording changes since it is subsumed by CWG2876, which is part of Poll 2. +The wording changes from issue CWG2867 of CWG Poll 1 affect the same wording as CWG Poll 7; the wording has been reconciled.
+ +CWG Poll 1. Accept as Defect Reports and apply the proposed resolutions of all issues except 2819, 2858, and 2876 in +P3345R0 +(Core Language Working Group "ready" Issues for the June, 2024 meeting) to the C++ Working Paper.
+ +CWG Poll 2. Apply the proposed resolution of issues 2819, 2858, and 2876 in +P3345R0 +(Core Language Working Group "ready" Issues for the June, 2024 meeting) to the C++ Working Paper.
+ +CWG Poll 3. Apply the changes in
+P2747R2
+(constexpr
placement new) to the C++ Working Paper.
CWG Poll 5. Apply the changes in +P3144R2 +(Deleting a Pointer to an Incomplete Type Should be Ill-formed) to the C++ Working Paper.
+ +CWG Poll 6. Apply the changes in +P2963R3 +(Ordering of constraints involving fold expressions) to the C++ Working Paper.
+ +CWG Poll 7. Apply the changes in +P0963R3 +(Structured binding declaration as a condition) to the C++ Working Paper.
+ +CWG Poll 4 did not have consensus.
+ +LWG Poll 1. Apply the changes for all Ready and Tentatively Ready issues in +P3341R0 +(C++ Standard Library Ready Issues to be moved in St. Louis, Jun. 2024) to the C++ working paper.
+ +LWG Poll 2. Apply the changes in +P2997R1 +(Removing the common reference requirement from the indirectly invocable concepts) to the C++ working paper.
+ +LWG Poll 3. Apply the changes in
+P2389R2
+(dextents
Index Type Parameter) to the C++ working paper.
LWG Poll 4. Apply the changes in
+P3168R2
+(Give std::optional
Range Support) to the C++ working paper.
LWG Poll 5. Apply the changes in
+P3217R0
+(Adjoints to "Enabling list-initialization for algorithms": find_last
) to the C++ working paper.
LWG Poll 6. Apply the changes in +P2985R0 +(A type trait for detecting virtual base classes) to the C++ working paper.
+ +LWG Poll 7. Apply the changes in
+P0843R14
+(inplace_vector
) to the C++ working paper.
LWG Poll 8. Accept as a Defect Report and apply the changes in
+P3235R3
+(std::print
more types faster with less memory) to the C++ working paper.
LWG Poll 9. Apply the changes in
+P2968R2
+(Make std::ignore
a first-class object) to the C++ working paper.
Not yet applied:
+ +LWG Poll 10. Apply the changes in +P2075R6 +(Philox as an extension of the C++ RNG engines) to the C++ working paper.
+ +LWG Poll 11. Apply the changes in +P2422R1 +(Remove nodiscard annotations from the standard library specification) to the C++ working paper.
+ +LWG Poll 12. Apply the changes in
+P2300R10
+(std::execution
) to the C++ working paper.
A number of editorial changes have been applied that resulted from the ongoing review of the +C++23 IS with the ISO secretariat.
+ +Mathematical formulae are now numbered, and they must be referenced explicitly from the text.
+ +We avoid writing references as "subclause 1.2.3" in favour of just "1.2.3" now whenever that is +equally clear.
+ +Examples in Annex C now use the regular example style, as opposed to the previous ad-hoc style.
+ +We changed how we refer to the C++ standard itself and how we cite other standards. The page +footers have been changed to show the page number and the copyright over two lines, and the +display of Annex titles has been changed, both in accordance with new ISO style advice. For +details see the following listing.
+ +A log of editorial fixes made to the working draft since N4981 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.
+ +commit 59d6bfc0c23b61cabb72d9a48270ed1c3b7e02f9
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Tue Apr 16 09:57:19 2024 -0400
+
+ [basic.life] Reflow text defining transparently replaceable
+
+ p8 is difficult to read as it defines transparently replaceable
+ only after it has made all use of it. The edit pulls the
+ definition of transparently replaceable into its own preceding
+ paragraph, and then simplifies the sentence that uses this term.
+
+commit ccfb6adea4373a63b7063f4d41cb9d47876a9347
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Wed Apr 17 03:08:36 2024 -0400
+
+ [tab:headers.cpp.fs] Move the debugging library to numberically sorted position (#6927)
+
+commit c82e95ca91b313bc2cfde60aac9abbd49406d930
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Wed Apr 17 18:42:19 2024 -0400
+
+ [zombie.names] Turn lists of zombie names into tables (#6925)
+
+commit c1eec01966d6383dabfaa4304939ce3be3868f1f
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Thu Apr 18 23:51:53 2024 +0800
+
+ [range.concat.overview] Remove unnecessary `std::` prefix from example (#6931)
+
+commit 2de15529d3f98a5de25cecf9ac8ed5b104d776e1
+Author: Jan Schultke <me@eisenwave.net>
+Date: Thu Apr 18 18:00:42 2024 +0200
+
+ [charconv.syn] Clarify types matching integer-type (#6847)
+
+commit bae18b69cbca566eac284c8c2f316407fda98d16
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Fri Apr 19 01:21:19 2024 +0800
+
+ [range.concat.view] Format code to match the current style (#6929)
+
+commit 79dcca82c22d75fc2b2b6cbc1c338a0229db9a34
+Author: S. B. Tam <cpplearner@outlook.com>
+Date: Fri Apr 19 19:51:29 2024 +0800
+
+ [range.utility.conv.general] Fix misapplication of LWG4016 (#6932)
+
+commit e572580d71dfc8bdb32b8d1a21a2e493676e2151
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Fri Apr 19 21:57:48 2024 +0800
+
+ [range.concat.iterator] Remove @ outside of codeblocks (#6934)
+
+commit 5a5295d9c9e1881e58d3b4696fe45f00ef1cc507
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Fri Apr 19 17:32:53 2024 -0400
+
+ [index] Add missing entries for Cpp17 concepts (#6940)
+
+commit 5d4d9508bca4709366a0ff7acb17ba7b3a2efced
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Sat Apr 20 20:16:23 2024 +0800
+
+ [range.join.with.iterator] Add missing 'template' keyword for dependent name 'emplace' (#5455)
+
+commit 0ac38fd4c4548ff61cd378f98eff3e18f4463caf
+Author: S. B. Tam <cpplearner@outlook.com>
+Date: Fri Aug 18 15:12:08 2023 +0800
+
+ Fix typo (`dynamic_rank` => `rank_dynamic`)
+
+commit 47c2f68d84cb13a7ca83a507fb1f32ddf4774ec1
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Mon Apr 22 23:19:41 2024 +0200
+
+ [mdspan.layout.leftpad.obs] Remove superfluous \item (#6944)
+
+commit 4f0779d5a3665af9dd92a96e52d809ba3911495d
+Author: Jan Schultke <me@eisenwave.net>
+Date: Tue Apr 23 12:13:27 2024 +0200
+
+ [intro.execution] Add comma after conditional clause (#6945)
+
+commit 12b6307589257a803527eb38c43f08f867d59322
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Mon Apr 29 15:23:41 2024 +0800
+
+ [algorithm.syn,alg.fill] Fix typos in constraints (#6957)
+
+commit 927d0dba2b068ba9f2136479b4ba05a430eec348
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Mon Apr 29 22:43:49 2024 +0800
+
+ [alg.rand.generate] Remove brace typo (#6956)
+
+commit 480adbe4d6ae54e03b6cec5f8784689445c36eee
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue Apr 30 07:48:14 2024 +0200
+
+ [print.syn] Correctly order println overloads
+
+commit 3333421819c1b2c6dec1becd0dd2a9fa0aeba8cd
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Tue Apr 30 20:22:43 2024 +0800
+
+ [range.concat.iterator] Remove superfluous period (#6960)
+
+commit 513635b371c6a664be2a0ea6fc6939350b9b5e6b
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Fri May 10 00:17:43 2024 +0800
+
+ [range.reverse.overview] Replace 'equivalent to' with 'then' (#6966)
+
+commit be18ecc17114bcae4acdad10a3467686510b22c2
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sat May 11 21:51:48 2024 +0200
+
+ [class.derived.general] Restore accidental reversal of P2662R3 change
+
+ P2662R3 contained a rename of the grammar production "class-or-decltype"
+ to "class-or-computed-type-specifier". That was editorially reverted
+ with commit c831ec0b8aac369aa61ce392783865ff04b84b19, but that commit
+ also accidentally reverted the change from "decltype-specifier" to
+ "computed-type-specifier" as one of the options for "class-or-decltype".
+
+ This commit restores the latter change, as intended by P2662R3.
+
+commit 9dcff41d2d26577c2ec0643056187a0f8094832e
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Sun May 12 15:24:43 2024 +0100
+
+ [intro.refs] Fix document titles
+
+commit 5b332fed1a4577ad08ed469da26c9c7864ea9e11
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Sun May 12 15:31:43 2024 +0100
+
+ [intro.refs, intro.defs] Update ISO 80000-2:2009 to :2019, change "and" to comma
+
+commit 85f4bb454effe50029de636d6f206f9c1153236a
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Sun May 12 15:53:11 2024 +0100
+
+ [defns.order.ptr] Add missing hypen in "built-in"
+
+commit 9cd8d6ce9cc446c94d91e1350b9113906774f0af
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Tue May 14 21:49:55 2024 +0800
+
+ [format.context] Fix error in example (#6970)
+
+commit 951ded4880e4295981c0d691915a81d84c2baa9d
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Sun May 12 16:01:09 2024 +0100
+
+ [defns.unblock] Italicize entire term "blocked", not just "block".
+
+ ISO has indicated that this is the acceptable way to state a reference to another definition, in this case "block" [defns.block].
+
+commit 1cb3842f83412720a23c664f478a4167cb3162a2
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue May 14 18:52:30 2024 +0200
+
+ [styles] Redesign Annex titles per Rice Model Standard
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 2f23560744a966f7a455629506468a02055d53ea
+Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
+Date: Mon May 20 05:52:26 2024 -0400
+
+ [alg.ends.with] Replace drop_view with views::drop (#6773)
+
+commit bbac8a98d303d3ad5ecd9514fb2db37745d16984
+Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
+Date: Mon May 20 07:24:27 2024 -0400
+
+ [dcl.init.list] Eliminate "specialization of initializer_list<X>" (#6258)
+
+commit ad37b863dec4af4c88d8f2154d5f3e4a9b2a3b33
+Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
+Date: Tue May 21 07:12:32 2024 -0400
+
+ [support.initlist] "initializer list" should be "initializer_list" (#6680)
+
+ This note is talking about the class type, not the grammatical construct.
+
+commit 2e455af5d6a2bdaac7e9d0d4e7f23ac7a6c0451d
+Author: zhihaoy <43971430+zhihaoy@users.noreply.github.com>
+Date: Tue May 21 22:50:56 2024 -0700
+
+ [util.smartptr.shared.cast] Properly describe possibility of double deletion in notes (#7037)
+
+commit 4b3f32ae814c8da3faccc0dc307904bd250371d9
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Tue May 28 22:10:36 2024 +0100
+
+ [input.output] Add cross-references to header synopses (#7005)
+
+ Several of the synopses are not adjacent to the types they declare.
+ Adding cross-references makes it easier to find the relevant definitions
+ of classes and class templates.
+
+ Also make the title of [ostream.manip] more specific to its content.
+
+commit dbf17528619707307f859bac1b36c52654fecfc8
+Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
+Date: Mon Jun 10 17:06:15 2024 -0400
+
+ [container.adaptors] Reorder constructors for flat_* adaptors (#6274)
+
+ Canonicalize the ordering of the constructors for the flat_* adaptors:
+ - default constructor is first
+ - each overload without `key_compare` is followed by the corresponding one with `key_compare`
+ - each pair of overloads without `sorted_unique` is followed by the corresponding pair with `sorted_unique`
+
+commit ae9b2d7481af415076ffdf33d5920e31e5591eb1
+Author: Jan Schultke <me@eisenwave.net>
+Date: Tue Jun 11 15:32:36 2024 +0200
+
+ [res.on.exception.handling] Add cross-reference to [except.spec] (#7058)
+
+commit c95ff039b634388962e1fa242e772da8466d49b6
+Author: Jan Schultke <me@eisenwave.net>
+Date: Wed Jun 12 12:36:02 2024 +0200
+
+ [stmt.if] Add missing comma after conditional clause (#7061)
+
+commit 42a38b072a471a112720535c087d96c8f4865a47
+Author: Jan Schultke <me@eisenwave.net>
+Date: Wed Jun 12 18:56:14 2024 +0200
+
+ [stmt.pre] Add a cross-reference to [intro.execution] (#7060)
+
+commit 3680e10a5a7eb48b35f150429ce6b3313583bb87
+Author: Jan Schultke <me@eisenwave.net>
+Date: Fri Jun 14 12:48:46 2024 +0200
+
+ [class.virtual] Add commas (#7062)
+
+commit 9ad7d63f8db28c88dfa68866d23c5ab742be3f80
+Author: Antony Polukhin <antoshkka@gmail.com>
+Date: Tue Jun 18 19:00:34 2024 +0300
+
+ [associative.reqmts.general] Fix typo (#7069)
+
+commit a24620eced94b1f04fcbd8add49f5e9ca6326ed4
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Fri Jun 21 12:36:01 2024 +0200
+
+ [class.union.general] Add comma (#7072)
+
+commit 59e634a8a841f58efeac873459bedf28928a83f9
+Author: Johannes Sixt <j6t@kdbg.org>
+Date: Wed Jun 26 11:53:47 2024 +0200
+
+ [func.require] Add missing formatting of subscript index (#7071)
+
+commit 6d67d200863e430650047adb651324bc5663b6fc
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue May 14 13:13:42 2024 +0200
+
+ [diff] Mark examples as such
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 21e022557462544e2e6d32411f71e42a378d2236
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Tue Jul 2 14:31:08 2024 +0100
+
+ [depr.c.macros] Fix "macro" singular when referring to two macros
+
+ This should have been applied as part of LWG 4036.
+
+commit 8bb63636c37f8e67808de1e1ce1142a3028293fd
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Wed Jul 3 20:53:40 2024 +0100
+
+ [istream.unformatted] add missing semi-colon to list item (#7117)
+
+commit 8227c196af96f157a539e5181f7a75ab3de3a096
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Fri Jul 5 10:03:47 2024 +0200
+
+ [except.throw] Add comma (#7118)
+
+commit 07c20b75a867b66c858de716dfb639b0a9d1da2c
+Author: Yihe Li <winmikedows@hotmail.com>
+Date: Sat Jul 6 23:32:43 2024 +0800
+
+ [version.syn] Remove redundant <version> for __cpp_lib_ranges_enumerate (#7120)
+
+commit 15b7ea6c95e471888cda2c334ba8ac30cabccf64
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Sun Jul 7 10:23:09 2024 +0200
+
+ [basic.start.main] fix definite article (#7121)
+
+commit 61d85d3f9b78d792bd1bdb1d15202f9cdd931b31
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Jul 9 00:57:58 2024 +0100
+
+ [intro.compliance.general] Cite Annex B more normatively.
+
+commit 2048179f82bbe92dcccee3cc6bbdac4973c77606
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Jul 9 01:25:28 2024 +0100
+
+ [intro.compliance.general] Cite Annex D more normatively.
+
+commit 6b67a856495634df3a0bd0d8abee36eb0d3c8c6f
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Tue Jul 9 08:29:50 2024 +0200
+
+ [temp.inst] Fix definite article
+
+commit 43c47b42fd1f7cd4d095299aca98666c06e45949
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Jul 9 01:44:08 2024 +0100
+
+ [uaxid] Clarify that requirements come "from UAX #31", and use "this document".
+
+commit 7c35cb057ef4885e091bf65c1103d64946e7c8d1
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Jul 9 14:47:10 2024 +0100
+
+ [std] Make bibliography reference link colour more citely
+
+commit bc2c80c23133a0581a847bd7fcfaca621ca86ffe
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon May 13 20:17:21 2024 +0200
+
+ [dcl.init.list] Add commas and period for bulleted list
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 868db7356ad1490890391e8c82888de5c4d4aad4
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon May 13 20:18:20 2024 +0200
+
+ [facet.num.get.virtuals] Add missing punctuation
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 77ee6ed3b8865b2bb514cb8446488aa6fb032dda
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon May 13 23:39:13 2024 +0200
+
+ [lex.literal] Properly format table headings
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit cb9850377b88a4d7da12d05bcdf11948c384f699
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon May 13 23:47:55 2024 +0200
+
+ [basic.fundamental] Center second column of "integer width" table
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 2a2b8732e0d81dd9f5d3880b70bd451173e5f5fc
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Jul 9 15:41:56 2024 +0100
+
+ [intro.defs] Minor rewording. Avoid sounding like a requirement.
+
+commit 4746925c7117015480542fd68ad5f595b78173d2
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue May 14 14:11:53 2024 +0200
+
+ [numeric.limits.members,bibliography] Remove LIA-1 abbreviation for ISO 10967
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit c18d51ddf436abf39065ea86497161383bba11c0
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed May 15 09:05:36 2024 +0200
+
+ [intro.memory] Move footnote about Unicode trademark to [lex.phases]
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 1f32f6aa8000f194f1b5c4daba94d271eea817fb
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed May 15 16:28:34 2024 +0200
+
+ [diff,bibliography] Move details of old C++ standards to the bibliography
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit d5410b4035e3108d48a63434abfff7e377c996d2
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed May 15 18:31:14 2024 +0200
+
+ [diff.cpp20,diff.cpp17] Add missing inclusion clause
+
+commit af4cf904c3d2df0675dbd456af2de2f1259e370c
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu May 16 12:56:12 2024 +0200
+
+ [std] Rename 'In general' headings to 'General' for consistency
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 9d3011b4224bb63636f4a117967e8ba8110f5ba4
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri May 17 14:11:48 2024 +0200
+
+ [implimits] Rephrase introductory sentence for list of quantities
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 260d3a0d0cde1431dd4221115e1b37979ee07e7d
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu May 16 12:30:44 2024 +0200
+
+ [class.copy.ctor] Remove reference to non-existing example
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 0bc3e030be28ff2191af8e9c9c202bff6e23c320
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu May 16 12:37:12 2024 +0200
+
+ [class.conv.general] Remove vague reference to unhelpful examples
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 861f07de24c5cfbd69840038d8589bc13b24b7e7
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed May 15 21:58:36 2024 +0200
+
+ [cpp.predefined,namespace.future,version.syn] Replace 'C++' with 'this document'
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit a7a2cbd10ea752d49ca286e3fea3e7cbbb9b6e9d
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri May 17 00:44:32 2024 +0200
+
+ [futures.state] Turn note into example
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 88c48bb78815576fb20db42b89f381c580d28b0e
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue May 14 22:41:24 2024 +0200
+
+ [std] Remove colons in front of bulleted lists
+
+commit 9d7aa6108b84a09117463d0b13bc24cf61926897
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue May 14 22:47:38 2024 +0200
+
+ [iterators] Add colon after 'model ... only if' when complete sentences follow
+
+commit 79ac47f7053da4ef20c117e282377591d028e7a5
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed May 15 21:42:09 2024 +0200
+
+ [basic.fundamental,cstdarg.syn] Use full reference for ISO C sections
+
+ Fixes ISO/CS comment (C++23)
+
+commit 2bbf136502811925250b09fd73909b78e0236091
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu May 16 12:51:32 2024 +0200
+
+ [execpol.general] Use 'this document', not 'this standard'
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit e65393f3c87d323258e38c498b849dc57404a20b
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed May 15 22:13:14 2024 +0200
+
+ [format.string.std] Add (R) symbol after Windows
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit dafefea895de358b8edcb6780e3c7b71d209b458
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue May 14 19:12:57 2024 +0200
+
+ [rand.req] Replace 'that Table' with a precise reference
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 361e7769a245aad263574bbe83b9266d8da3b01b
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri May 17 09:42:22 2024 +0200
+
+ [std] Replace 'this standard' with 'this document'
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit e86031dd14e052956fc23ec4dbc1510b7438ba5b
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon May 13 23:19:57 2024 +0200
+
+ [time.format,time.parse] Fix references to ISO week calendar
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 868b0b29ac16370ed8792442a0ab41be91c5d575
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon May 13 19:01:05 2024 +0200
+
+ [std] Avoid hanging paragraphs by introducing "General" subclauses
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit f0580700cf0e8e920ceb3a078b6872a4c16fa225
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed May 15 21:49:31 2024 +0200
+
+ [std] Remove ISO from any mention of 'C'
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 69f184ea599635dac4cd9dc06a3303bed93b26f7
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon May 13 19:30:38 2024 +0200
+
+ [std] Remove mid-sentence 'subclause' introducer
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit ecb071672b02a4b7bc829f87433d98785d9dd701
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon May 13 19:44:40 2024 +0200
+
+ [std] Remove incorrect or duplicative 'this subclause' introducers
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit a249f9f37531fe79e768f19a45f1b1a70685c2c6
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Jul 9 22:48:20 2024 +0100
+
+ [classes] Turn ad-hoc examples into proper examples (#7125)
+
+commit eade3851e174ac014b478b8d4f097103d3b996ae
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu May 16 12:44:01 2024 +0200
+
+ [lex.ccon,expr.prim.lambda.capture] Excise 'ISO' prefix
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 5383169856690cf05d946f058ed861119405d126
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu May 16 14:32:49 2024 +0200
+
+ [fs.class.path.general] Defuse cross-reference to POSIX
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 5731ab6a9122763bf6193d1382a05c7bebe82b38
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Jul 9 23:24:09 2024 +0100
+
+ [time.format] Remove mid-sentence 'subclause' introducer from external reference
+
+commit 856d175973d343d8e16d641221f47357672d9959
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri May 17 14:26:54 2024 +0200
+
+ [lib] Excise Note A, Note B, etc. designations
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 5508a007540d790a8f5cd30f863f4d329edf2694
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu May 16 15:07:27 2024 +0200
+
+ [macros,numerics] Add and use numbered 'formula' environment
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 2b0ff8d6bd285bbe8b27fdab47e268b115a3f930
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Wed Jul 10 11:33:23 2024 +0100
+
+ [lex.string] Replace colon with full stop to end the sentence.
+
+ On request of ISO/CS, for otherwise we should have made the next 'if'
+ lowercase, because: "Grammatically this is the same sentence,
+ as there is no full stop, so the 'if' should be lowercase."
+
+ If a colon really doesn't end a sentence, then we should make it so
+ that the sentence really does end.
+
+commit 064fb0b34eb8cbb14f52dc966c833ef7c749c82c
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue May 14 08:23:07 2024 +0200
+
+ [macros] Prefer page break above 'note' or 'example' introducers
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 13b08d0f58dfea7ae2e19b1d931094d4523a52d2
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Thu Jul 11 01:41:29 2024 +0100
+
+ [layout, styles] New ISO header and footer layout.
+
+ The footer now takes up two lines, one for the copyright and one for
+ the page number.
+
+commit 7f6069c794abb56e51affdc2923e3d33b3a547a8
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Thu Jul 11 12:27:28 2024 +0100
+
+ [cover-reg] Update regular cover
+
+commit f41a619cf852ae638bfe4792ec78ac1f214a7d23
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Fri Jul 12 01:28:38 2024 +0100
+
+ [impldefindex] Reinstate full page mark
+
+ As of 13b08d0f58dfea7ae2e19b1d931094d4523a52d2 we have space for it.
+
+commit b2870b5c87765946f5c4a644da508adcc483045e
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Fri Jul 12 01:30:06 2024 +0100
+
+ [macros, std] Create macros for ISO/IEC 60559 and ISO/IEC/IEEE 9945.
+
+ As a side effect, this corrects the title of ISO/IEC 60559(:2020),
+ whose previous version was ISO/IEC/IEEE 60559:2011.
+
+
+
diff --git a/papers/n4987.md b/papers/n4987.md
new file mode 100644
index 0000000000..d405f0b427
--- /dev/null
+++ b/papers/n4987.md
@@ -0,0 +1,774 @@
+# N4987 Editors' Report -- Programming Languages -- C++
+
+Date: 2024-07-16
+
+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.
+
+## New papers
+
+ * [N4986](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/n4986.pdf) is the
+ current working draft for C++26. It replaces
+ [N4981](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/n4981.pdf).
+ * N4987 is this Editors' Report.
+
+## Motions incorporated into working draft
+
+### Notes on motions
+
+All passed motions from CWG and LWG motions 1 through 9 were applied cleanly.
+LWG motions 10, 11, and 12 have not yet been applied due to a lack of time,
+but will be included in the next draft.
+
+In CWG Poll 1, issue CWG2144 contains no wording changes since it is subsumed by CWG2876, which is part of Poll 2.
+The wording changes from issue CWG2867 of CWG Poll 1 affect the same wording as CWG Poll 7; the wording has been reconciled.
+
+### Core working group polls
+
+CWG Poll 1. Accept as Defect Reports and apply the proposed resolutions of all issues except 2819, 2858, and 2876 in
+[P3345R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3345r0.html)
+(Core Language Working Group "ready" Issues for the June, 2024 meeting) to the C++ Working Paper.
+
+CWG Poll 2. Apply the proposed resolution of issues 2819, 2858, and 2876 in
+[P3345R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3345r0.html)
+(Core Language Working Group "ready" Issues for the June, 2024 meeting) to the C++ Working Paper.
+
+CWG Poll 3. Apply the changes in
+[P2747R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2747r2.html)
+(`constexpr` placement new) to the C++ Working Paper.
+
+CWG Poll 5. Apply the changes in
+[P3144R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3144r2.pdf)
+(Deleting a Pointer to an Incomplete Type Should be Ill-formed) to the C++ Working Paper.
+
+CWG Poll 6. Apply the changes in
+[P2963R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2963r3.pdf)
+(Ordering of constraints involving fold expressions) to the C++ Working Paper.
+
+CWG Poll 7. Apply the changes in
+[P0963R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0963r3.html)
+(Structured binding declaration as a condition) to the C++ Working Paper.
+
+CWG Poll 4 did not have consensus.
+
+### Library working group polls
+
+LWG Poll 1. Apply the changes for all Ready and Tentatively Ready issues in
+[P3341R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3341r0.html)
+(C++ Standard Library Ready Issues to be moved in St. Louis, Jun. 2024) to the C++ working paper.
+
+LWG Poll 2. Apply the changes in
+[P2997R1](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2997r1.html)
+(Removing the common reference requirement from the indirectly invocable concepts) to the C++ working paper.
+
+LWG Poll 3. Apply the changes in
+[P2389R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2389r2.html)
+(`dextents` Index Type Parameter) to the C++ working paper.
+
+LWG Poll 4. Apply the changes in
+[P3168R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3168r2.html)
+(Give `std::optional` Range Support) to the C++ working paper.
+
+LWG Poll 5. Apply the changes in
+[P3217R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3217r0.html)
+(Adjoints to "Enabling list-initialization for algorithms": `find_last`) to the C++ working paper.
+
+LWG Poll 6. Apply the changes in
+[P2985R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2985r0.html)
+(A type trait for detecting virtual base classes) to the C++ working paper.
+
+LWG Poll 7. Apply the changes in
+[P0843R14](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0843r14.html)
+(`inplace_vector`) to the C++ working paper.
+
+LWG Poll 8. Accept as a Defect Report and apply the changes in
+[P3235R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3235r3.html)
+(std::print more types faster with less memory) to the C++ working paper.
+
+LWG Poll 9. Apply the changes in
+[P2968R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2968r2.html)
+(Make std::ignore a first-class object) to the C++ working paper.
+
+**Not yet applied:**
+
+LWG Poll 10. Apply the changes in
+[P2075R6](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2075r6.html)
+(Philox as an extension of the C++ RNG engines) to the C++ working paper.
+
+LWG Poll 11. Apply the changes in
+[P2422R1](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2422r1.html)
+(Remove nodiscard annotations from the standard library specification) to the C++ working paper.
+
+LWG Poll 12. Apply the changes in
+[P2300R10](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2300r10.html)
+(std::execution) to the C++ working paper.
+
+## Editorial changes
+
+### Major editorial changes
+
+A number of editorial changes have been applied that resulted from the ongoing review of the
+C++23 IS with the ISO secretariat.
+
+Mathematical formulae are now numbered, and they must be referenced explicitly from the text.
+
+We avoid writing references as "subclause 1.2.3" in favour of just "1.2.3" now whenever that is
+equally clear.
+
+Examples in Annex C now use the regular example style, as opposed to the previous ad-hoc style.
+
+We changed how we refer to the C++ standard itself and how we cite other standards. The page
+footers have been changed to show the page number and the copyright over two lines, and the
+display of Annex titles has been changed, both in accordance with new ISO style advice. For
+details see the following listing.
+
+### Minor editorial changes
+
+A log of editorial fixes made to the working draft since N4981 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/n4981...n4986).
+
+ commit 59d6bfc0c23b61cabb72d9a48270ed1c3b7e02f9
+ Author: Alisdair Meredith Date: 2024-08-05
+ +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
Thanks to all those who have submitted editorial +issues +and to those who have provided pull requests with fixes.
+ +The previous draft +N4986 +was not approved at any WG21 meeting. For approval of this draft, N4988, +please consult the previous Editors' report +N4987 +as well as this one.
+ +All passed motions from CWG and LWG motions 1 through 9 were applied in the previous draft +N4986. +LWG motions 10, 11, and 12 had not yet been applied due to a lack of time, +and are included in this draft.
+ +The full list of approved motions is included here for ease of reference.
+ +Already applied in previous draft.
+ +CWG Poll 1. Accept as Defect Reports and apply the proposed resolutions of all issues except 2819, 2858, and 2876 in +P3345R0 +(Core Language Working Group "ready" Issues for the June, 2024 meeting) to the C++ Working Paper.
+ +CWG Poll 2. Apply the proposed resolution of issues 2819, 2858, and 2876 in +P3345R0 +(Core Language Working Group "ready" Issues for the June, 2024 meeting) to the C++ Working Paper.
+ +CWG Poll 3. Apply the changes in
+P2747R2
+(constexpr
placement new) to the C++ Working Paper.
CWG Poll 5. Apply the changes in +P3144R2 +(Deleting a Pointer to an Incomplete Type Should be Ill-formed) to the C++ Working Paper.
+ +CWG Poll 6. Apply the changes in +P2963R3 +(Ordering of constraints involving fold expressions) to the C++ Working Paper.
+ +CWG Poll 7. Apply the changes in +P0963R3 +(Structured binding declaration as a condition) to the C++ Working Paper.
+ +CWG Poll 4 did not have consensus.
+ +Already applied in previous draft.
+ +LWG Poll 1. Apply the changes for all Ready and Tentatively Ready issues in +P3341R0 +(C++ Standard Library Ready Issues to be moved in St. Louis, Jun. 2024) to the C++ working paper.
+ +LWG Poll 2. Apply the changes in +P2997R1 +(Removing the common reference requirement from the indirectly invocable concepts) to the C++ working paper.
+ +LWG Poll 3. Apply the changes in
+P2389R2
+(dextents
Index Type Parameter) to the C++ working paper.
LWG Poll 4. Apply the changes in
+P3168R2
+(Give std::optional
Range Support) to the C++ working paper.
LWG Poll 5. Apply the changes in
+P3217R0
+(Adjoints to "Enabling list-initialization for algorithms": find_last
) to the C++ working paper.
LWG Poll 6. Apply the changes in +P2985R0 +(A type trait for detecting virtual base classes) to the C++ working paper.
+ +LWG Poll 7. Apply the changes in
+P0843R14
+(inplace_vector
) to the C++ working paper.
LWG Poll 8. Accept as a Defect Report and apply the changes in +P3235R3 +(std::print more types faster with less memory) to the C++ working paper.
+ +LWG Poll 9. Apply the changes in +P2968R2 +(Make std::ignore a first-class object) to the C++ working paper.
+ +Newly applied in this draft:
+ +LWG Poll 10. Apply the changes in +P2075R6 +(Philox as an extension of the C++ RNG engines) to the C++ working paper.
+ +LWG Poll 11. Apply the changes in +P2422R1 +(Remove nodiscard annotations from the standard library specification) to the C++ working paper.
+ +LWG Poll 12. Apply the changes in +P2300R10 +(std::execution) to the C++ working paper.
+ +There were no major editorial changes.
+ +A log of editorial fixes made to the working draft since N4986 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.
+ +commit a52859fad0d3bc56ec941fc287d5cebc0fd080dc
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Fri Jul 12 14:35:07 2024 +0100
+
+ [diff.cpp23.dcl.dcl] Fix capitalisation of heading
+
+commit 811e9bb15fe6b8fe0a6e5584525b7839e329126b
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Jul 23 00:19:37 2024 +0100
+
+ [intro.refs] Move footnote
+
+ As requested by ISO/CS.
+
+commit dd306a57cdcce4596fb9d5ce917075eee8e60f4b
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Jul 23 00:22:31 2024 +0100
+
+ [intro.races] Rephrase note to avoid awkward "can not".
+
+ Suggested by ISO/CS.
+
+commit 3dc8333128753e8eb4c39f353aa272a63221e6d5
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Jul 23 00:28:48 2024 +0100
+
+ [library.c] Clarify that Annex F comes from ISO/IEC 9899:2018
+
+commit b303620f529bfe517fb0c79d3e7f644c54a1e6cb
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Jul 23 00:20:42 2024 +0100
+
+ [rand.dist] Remove textual elements from forumla.
+
+ Those were left over from when we converted the text-integrated
+ formula to self-contained, numbered ones.
+
+commit 7228e06a7973282cf1034a9cdb095dd863aef377
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Wed Jul 17 00:48:45 2024 +0100
+
+ [tab:headers.cpp.fs] Use a more appropriate subclause for inplace_vector
+
+commit 3f5771916e846d16330a87df15d35e797ea66437
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Tue Jul 23 17:48:36 2024 -0400
+
+ [depr.c.macros] Cross-reference the C headers for deprecated macros
+
+commit be25cad169c62518e934cd3269e966091b20a4c4
+Author: A. Jiang <de34@live.cn>
+Date: Mon Jul 22 17:25:04 2024 +0800
+
+ [inplace.vector.syn] Default template argument for `erase`
+
+ The default template argument is already in [inplace.vector.erasure].
+
+commit e0fe4a30614303116dc91357ab1bb483dc98b2ca
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Mon Jul 22 00:24:26 2024 +0800
+
+ [inplace.vector.modifiers] Fix typo
+
+commit 420cff6a620498b6e6b0a4a7f0757bfa8dfb2a1c
+Author: Hewill Kang <hewillk@gmail.com>
+Date: Sun Jul 28 00:05:29 2024 +0800
+
+ [func.search.bm] Remove superfluous the (#7160)
+
+commit cf27216f6aeba4a7e1debed304303fc2e69b2d65
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Mon Jul 22 13:11:05 2024 +0800
+
+ [inplace.vector.erasure] Added missing return statement
+
+commit dc8b2d4d198a307b749832044e2819de1378ace7
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Tue Jul 23 22:28:38 2024 -0400
+
+ [locale.ctype.general] Better cross-ref standard headers
+
+commit f181708d17038c0ebe42aff9d61e79222e5a06b0
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Fri Jul 19 20:33:06 2024 +0100
+
+ [basic.indet] Fix "errorneous" typo
+
+commit 1a15d3a3d84549687eb65a870952441c869f31a9
+Author: A. Jiang <de34@live.cn>
+Date: Sun Jul 28 07:56:03 2024 +0800
+
+ Make cross-reference more precise. (#7144)
+
+ Co-authored-by: Eelis van der Weegen <eelis@eelis.net>
+
+commit 930502061ea47c184c3b25ed623801dfa5284167
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Sun Jul 28 01:57:52 2024 +0200
+
+ [temp.constr.normal] Remove duplicate "the" (#7135)
+
+commit 11e13d5d858f06ec163ece2881af642a23fe5b96
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Sun Jul 28 01:58:09 2024 +0200
+
+ [diff.cpp23.expr] Remove duplicate "that" (#7134)
+
+commit 8ead4680a67cacffe82e2fd74e64df76120cb1a9
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Wed Jul 10 20:28:34 2024 +0800
+
+ [variant.visit] Add constexpr to as-variant
+
+commit 8d8861cdc944b784db14be27ce2541071288dcc5
+Author: A. Jiang <de34@live.cn>
+Date: Mon May 13 00:33:24 2024 +0800
+
+ [print.syn] Show `locking` functions in the synopsis of `<print>`
+
+commit 5c3858e09e73c49748901aceb33acc7cd86bd7de
+Author: Eelis <github.com@contacts.eelis.net>
+Date: Sun Jul 28 13:35:39 2024 +0200
+
+ [exec.snd.general] Add missing period (#7172)
+
+commit 3e87f29c42ad38e224ac6e7e75dc08220b440189
+Author: Eelis <github.com@contacts.eelis.net>
+Date: Sun Jul 28 13:37:06 2024 +0200
+
+ [out.ptr.t] Fix bullet placement for item that starts with codeblock (#7173)
+
+commit 81d85dfbee01b8fdf993fac4efeb40fb00b18144
+Author: Eelis <github.com@contacts.eelis.net>
+Date: Sun Jul 28 13:39:12 2024 +0200
+
+ [range.concat.iterator] Remove stray hyphen (#7171)
+
+commit 500b8f49f28b51c576eb671ee067efcc1bc002a9
+Author: A. Jiang <de34@live.cn>
+Date: Sun Jul 28 22:22:54 2024 +0800
+
+ [print.syn] Update `locking` to `buffered` (#7168)
+
+ The function names were changed by P3235R3.
+
+commit 9b3d01e82b03e26cf9e1fa06a582ec931ca00052
+Author: Eelis <github.com@contacts.eelis.net>
+Date: Sun Jul 28 21:16:58 2024 +0200
+
+ [execution.syn] Fix read_env name (#7169)
+
+commit 5bac031ccb4f7ce511c6e95b63b39eee2eb14c87
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Sat Jul 27 00:48:42 2024 +0100
+
+ [stoptoken.general, stopsource.general] Remove DMI from stop-state member
+
+ For stoptoken::stop-state, the default-initialized value is already
+ correct, and no further "{}" initializer is needed.
+
+ For stopsource::stop-state, the DMI "{}" is never used, since the
+ constructor is explicitly specified and not defaulted.
+
+commit 917c271c926214e286f560c4a3f2aadc59dadcb7
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Sat Jul 27 00:12:22 2024 +0100
+
+ [exec.snd.general] Remove disconnected and obsolete paragraph.
+
+commit 609068d41d699b85b0677fbb206235a4bc30fd77
+Author: Eisenwave <me@eisenwave.net>
+Date: Sat Jun 8 16:13:36 2024 +0200
+
+ [array.cons] Fix various wording issues
+
+commit f8468b9606aa4db0a55f1ecde046025876c5de23
+Author: Eisenwave <me@eisenwave.net>
+Date: Sun Aug 6 21:52:00 2023 +0200
+
+ [expr.cond] itemize p4
+
+commit d9bff4abf4e4de12ef816d3e9df4ed5c6733da64
+Author: Hewill Kang <hewillk@gmail.com>
+Date: Mon Jul 29 23:31:19 2024 +0800
+
+ [coro.generator] Rename the generator's template parameter "V" to "Val" (#7129)
+
+commit aa4a13e9ea6e81e7d2ef5205de9e1f765a27bbbe
+Author: Eisenwave <me@eisenwave.net>
+Date: Sat Aug 19 13:33:10 2023 +0200
+
+ [basic.fundamental] itemize uses of void expressions
+
+commit 0711baa8bf611656aae770a6bc23b7ee96ed5811
+Author: Eisenwave <me@eisenwave.net>
+Date: Sat Aug 19 13:47:04 2023 +0200
+
+ [basic.fundamental] remove redundant void conversion wording
+
+commit 5342083f2c84f6592c455562d8a6b464d39d86ba
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Mon Jun 17 10:55:22 2024 +0700
+
+ [cpp.pre] define, index, and consistently use the term 'logical source line'
+
+commit 56079f18c4751d4dd15fbdf7d50179d2044345f3
+Author: Casey Carter <Casey@Carter.net>
+Date: Fri Jan 12 10:35:39 2024 -0800
+
+ [structure.specifications] clarify description of Results element
+
+ The text "... the expression is an lvalue if the type is an lvalue reference type, an xvalue if the type is an rvalue reference type, and a prvalue otherwise" clearly indicates that a Result element describes the type and value category of an expression, yet we summarize it as only "a description of the type of the expression".
+
+commit 407c552023c069afc2438cd462049a323c971bb1
+Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
+Date: Tue Jul 16 19:41:36 2024 -0400
+
+ [deque, forward.list, list, vector] Fix instances of "FooInsertable into *this"
+
+ Fixes #7133
+
+commit 4bf5bd233461b49924ea330b95698fdc43cf3636
+Author: A. Jiang <de34@live.cn>
+Date: Thu Apr 25 00:46:41 2024 +0800
+
+ [alg.replace] Fix misapplication of P2248R8 to `std::replace_copy`
+
+ Removes wrongly added default template arguments that are not present in that paper.
+
+commit d0615b3d8b991fd0cd58fbd6b75da727423cff4e
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Tue Jul 23 22:20:27 2024 -0400
+
+ [containers] Consistently xref header synopses from General clauses
+
+commit 35904b92e4bbabd0303f8fb7cbbe3a6142639876
+Author: A. Jiang <de34@live.cn>
+Date: Sat Apr 27 00:46:29 2024 +0800
+
+ [expr.call] Say implicit object parameter instead of `this`
+
+ And correct the initialization of the implicit object parameter.
+
+commit 7f76c21f933b167d71a1ff12584911e82477454d
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Mon Jul 29 18:48:49 2024 +0100
+
+ [alg.search] Replace "the following corresponding conditions"
+
+ It's not clear which conditions correspond to each overload.
+
+commit 69ddb6ec0b50c92390391ec54b97c92ef2179869
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Mon Jul 29 21:54:11 2024 +0200
+
+ [exec.stopped.opt] Fix indefinite article (#7186)
+
+commit 4800c7b83d2fbde2c63c6811716bf62df047f5ae
+Author: Hewill Kang <hewillk@gmail.com>
+Date: Tue Jul 30 18:02:17 2024 +0800
+
+ [range.join.with.iterator] Fix typo (#7131)
+
+commit 3dba07b8277a59792430cd166192ed41e428c6f7
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Tue Jul 30 12:03:20 2024 +0200
+
+ [exec.util.cmplsig.trans] Fix English grammar (#7188)
+
+commit f640daed4a6304ef4e2c289c6d42e754d06cd4ee
+Author: Anoop Rana <93918384+ranaanoop@users.noreply.github.com>
+Date: Thu Jul 25 19:57:36 2024 +0530
+
+ [basic.scope.scope] Replaced the term top-level reference with just reference
+
+ [basic.scope.scope] Replaced the term top-level reference with just reference in light of [this issue](https://github.com/cplusplus/CWG/issues/569)
+
+commit 54fb7eb6ada6e7a4d47c9a310675d5cf55bbd5c7
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Tue Jul 30 16:22:02 2024 -0400
+
+ [lex.pptoken] Consistent use of preprocessing vs processing
+
+ There are three cases here all doing the same thing. Two
+ refer to preprocessing a directive, while the first refers
+ to processing without the pre.
+
+
+
diff --git a/papers/n4989.md b/papers/n4989.md
new file mode 100644
index 0000000000..6a639a8806
--- /dev/null
+++ b/papers/n4989.md
@@ -0,0 +1,428 @@
+# N4989 Editors' Report -- Programming Languages -- C++
+
+Date: 2024-08-05
+
+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.
+
+## New papers
+
+ * [N4988](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/n4988.pdf) is the
+ current working draft for C++26. It replaces
+ [N4986](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/n4986.pdf).
+ * N4989 is this Editors' Report.
+
+## Draft approval
+
+The previous draft
+[N4986](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/n4986.pdf)
+was not approved at any WG21 meeting. For approval of this draft, N4988,
+please consult the previous Editors' report
+[N4987](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/n4987.html)
+as well as this one.
+
+## Motions incorporated into working draft
+
+### Notes on motions
+
+All passed motions from CWG and LWG motions 1 through 9 were applied in the previous draft
+[N4986](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/n4986.pdf).
+LWG motions 10, 11, and 12 had not yet been applied due to a lack of time,
+and are included in this draft.
+
+The full list of approved motions is included here for ease of reference.
+
+### Core working group polls
+
+**Already applied in previous draft.**
+
+CWG Poll 1. Accept as Defect Reports and apply the proposed resolutions of all issues except 2819, 2858, and 2876 in
+[P3345R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3345r0.html)
+(Core Language Working Group "ready" Issues for the June, 2024 meeting) to the C++ Working Paper.
+
+CWG Poll 2. Apply the proposed resolution of issues 2819, 2858, and 2876 in
+[P3345R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3345r0.html)
+(Core Language Working Group "ready" Issues for the June, 2024 meeting) to the C++ Working Paper.
+
+CWG Poll 3. Apply the changes in
+[P2747R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2747r2.html)
+(`constexpr` placement new) to the C++ Working Paper.
+
+CWG Poll 5. Apply the changes in
+[P3144R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3144r2.pdf)
+(Deleting a Pointer to an Incomplete Type Should be Ill-formed) to the C++ Working Paper.
+
+CWG Poll 6. Apply the changes in
+[P2963R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2963r3.pdf)
+(Ordering of constraints involving fold expressions) to the C++ Working Paper.
+
+CWG Poll 7. Apply the changes in
+[P0963R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0963r3.html)
+(Structured binding declaration as a condition) to the C++ Working Paper.
+
+CWG Poll 4 did not have consensus.
+
+### Library working group polls
+
+**Already applied in previous draft.**
+
+LWG Poll 1. Apply the changes for all Ready and Tentatively Ready issues in
+[P3341R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3341r0.html)
+(C++ Standard Library Ready Issues to be moved in St. Louis, Jun. 2024) to the C++ working paper.
+
+LWG Poll 2. Apply the changes in
+[P2997R1](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2997r1.html)
+(Removing the common reference requirement from the indirectly invocable concepts) to the C++ working paper.
+
+LWG Poll 3. Apply the changes in
+[P2389R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2389r2.html)
+(`dextents` Index Type Parameter) to the C++ working paper.
+
+LWG Poll 4. Apply the changes in
+[P3168R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3168r2.html)
+(Give `std::optional` Range Support) to the C++ working paper.
+
+LWG Poll 5. Apply the changes in
+[P3217R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3217r0.html)
+(Adjoints to "Enabling list-initialization for algorithms": `find_last`) to the C++ working paper.
+
+LWG Poll 6. Apply the changes in
+[P2985R0](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2985r0.html)
+(A type trait for detecting virtual base classes) to the C++ working paper.
+
+LWG Poll 7. Apply the changes in
+[P0843R14](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0843r14.html)
+(`inplace_vector`) to the C++ working paper.
+
+LWG Poll 8. Accept as a Defect Report and apply the changes in
+[P3235R3](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3235r3.html)
+(std::print more types faster with less memory) to the C++ working paper.
+
+LWG Poll 9. Apply the changes in
+[P2968R2](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2968r2.html)
+(Make std::ignore a first-class object) to the C++ working paper.
+
+**Newly applied in this draft:**
+
+LWG Poll 10. Apply the changes in
+[P2075R6](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2075r6.pdf)
+(Philox as an extension of the C++ RNG engines) to the C++ working paper.
+
+LWG Poll 11. Apply the changes in
+[P2422R1](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2422r1.html)
+(Remove nodiscard annotations from the standard library specification) to the C++ working paper.
+
+LWG Poll 12. Apply the changes in
+[P2300R10](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2300r10.html)
+(std::execution) to the C++ working paper.
+
+## Editorial changes
+
+### Major editorial changes
+
+There were no major editorial changes.
+
+### Minor editorial changes
+
+A log of editorial fixes made to the working draft since N4986 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/n4986...n4988).
+
+ commit a52859fad0d3bc56ec941fc287d5cebc0fd080dc
+ Author: Thomas Köppe Date: 2024-10-16
+ +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
Thanks to all those who have submitted editorial +issues +and to those who have provided pull requests with fixes.
+ +The previous drafts +N4986 +and +N4988 +were not approved at any WG21 meeting. For approval of this draft, N4993, +please consult the previous Editors' reports +N4987 +and +N4989 +as well as this one.
+ +There have been no new, approved WG21 motions. +This revision contains only editorial changes.
+ +A few of the editorial changes fix mistakes in our LaTeX sources that were +reported to us by the ISO secretariat during the ongoing publication of C++23.
+ +For this revision, we have reorganised several clauses and subclauses. +As a reminder: the editorial team aims to perform only one major reorganisation +that changes top-level clause numbers per C++ revision, and this is it for C++26.
+ +The changes create a new clause "Text processing library [text]
" that collects
+formatting, conversions, locales, regular expressions, and text-related C library
+facilities. Clauses are rearranged as:
[algorithms]
[strings]
[text]
[numerics]
[time]
[input.output]
The new [text]
clause obtains the following contents:
[charconv]
, from [utilities]
[format]
, from [utilities]
[text.encoding]
, extracted from [localization]
[localization]
[re]
[cctype.syn]
, [cwctype.syn]
, [cwchar.syn]
, [cuchar.syn]
, and [c.mb.wcs]
Additionally, the following subclauses are moved:
+ +[debugging]
from [utilities]
to the end of [diagnostics]
[execpol]
from [utilities]
to the end of [algorithms.parallel]
type_index
[type.index]
from [utilities]
to [support.rtti]
This removes a number of unrelated clauses from the large [utilities]
clause.
Finally, we spread the synopses in [containers]
out to appear right in front
+of the classes they define.
A log of editorial fixes made to the working draft since N4988 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.
+ +commit 15a43d522467d389bd9340081d65dbf17d44d255
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Mon Aug 5 12:21:56 2024 +0100
+
+ [temp.over.link] Reword to clarify that declarations correspond (#5999)
+
+commit 3c0f4cf0a03892157ebf3a472d3e9450a41f038e
+Author: Lewis Baker <lewissbaker@users.noreply.github.com>
+Date: Sun Aug 4 09:26:26 2024 +0930
+
+ [snd.expos] Fix typo in definition of SCHED-ENV exposition-only helper
+
+ Change `o1` -> `o2` to reference the expression declared as part of the definition of `SCHED-ENV`.
+
+commit 5056b86597f5ba9278601db46a415f2d76e1bc8f
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri Aug 2 17:38:05 2024 +0200
+
+ [temp.constr.order] Reflect fold expanded constraints in footnotes
+
+commit c92bc384b118412322f9893832508bf17f46f644
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Aug 1 12:35:50 2024 +0200
+
+ [dcl.fct] Fix obsolete phrasing when defining 'function type'
+
+commit fabbff2d812e0a99bd1162460812ec2f5399636e
+Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
+Date: Thu Aug 8 17:15:39 2024 -0400
+
+ [sequences] Consistent comma in "If X, there are no effects" (#7139)
+
+commit 04c5a0c509dbf8f9f81223d1de5bb917cd3074c5
+Author: Hana Dusíková <hanicka@hanicka.net>
+Date: Tue Aug 20 12:21:43 2024 +0200
+
+ [meta.const.eval] Fix function declaration in example (#7234)
+
+commit ab4c0663dc72f09fb8ef6c366352c9d1a68e8fa9
+Author: Vlad Serebrennikov <serebrennikov.vladislav@gmail.com>
+Date: Fri Aug 23 22:06:05 2024 +0400
+
+ [expr.prim.lambda.capture] Incorporate ellipsis into "captured by copy" definition
+
+commit 6ea6df4c96653d6696bb0133253ea0159b0f278f
+Author: Vlad Serebrennikov <serebrennikov.vladislav@gmail.com>
+Date: Sat Aug 24 23:24:01 2024 +0400
+
+ [dcl.type.elab] Remove redundant full stop (#7242)
+
+commit 24ceda755967b022e8e089d4f0cdcf4bc99a4adb
+Author: Hewill Kang <hewillk@gmail.com>
+Date: Mon Aug 26 18:29:28 2024 +0800
+
+ [exec.snd.apply,exec.schedule.from] Properly mark "see below" (#7210)
+
+commit 447b6291061d50a582f72dd42d9d6265857ded5c
+Author: Joachim Wuttke <j.wuttke@fz-juelich.de>
+Date: Mon Aug 26 22:30:39 2024 +0200
+
+ [numerics] Correct typo Bessell -> Bessel (#7244)
+
+commit db0ca108a9b44ef8f06338ecf68f1e4653be4267
+Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
+Date: Thu Aug 29 06:13:18 2024 -0400
+
+ [inplace.vector] Fix some spelling/grammar issues (#7243)
+
+commit 21e477fb6dbfa7813eb2263bfa31c748bdce589b
+Author: Casey Carter <Casey@Carter.net>
+Date: Fri Aug 30 05:07:36 2024 -0700
+
+ [lib] Remove `inline` from variable templates (#7240)
+
+commit c001805bb769fe237034151d59ddd20835a17298
+Author: A. Jiang <de34@live.cn>
+Date: Fri Aug 30 20:52:00 2024 +0800
+
+ [lib] Remove `friend class X` (#6427)
+
+ Friendship between library classes is considered an implementation detail.
+
+commit 1fafde9a04a3760debb932839791b1d2047ba432
+Author: A. Jiang <de34@live.cn>
+Date: Fri Aug 30 20:52:49 2024 +0800
+
+ [fs.class.directory.entry.general] Remove superfluous "unneeded" (#7245)
+
+commit e010cf6cde64a498c2bc4291e7e79e66e8ace79a
+Author: Vlad Serebrennikov <serebrennikov.vladislav@gmail.com>
+Date: Fri Aug 23 21:03:51 2024 +0400
+
+ [basic.scope.scope] Fix a note about declarations that do not bind names
+
+ The note is saying that declarations of qualified names do not bind names, but this is not supported by normative wording in [dcl.meaning]
+
+commit 36a1f39068e71d69e4ca534c5b72891055675e88
+Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
+Date: Wed Sep 4 10:23:14 2024 -0400
+
+ [forward.list] Replace misplaced comma with period (#7246)
+
+commit f23059bf704a48b4805db28441ec73b61054ab9d
+Author: A. Jiang <de34@live.cn>
+Date: Thu Sep 5 00:03:56 2024 +0800
+
+ [optional.syn] Use `decay_t<T>` directly instead of "see below" (#7247)
+
+commit 9d9a3777f1a571dd2648023fe70848c32aebda09
+Author: Casey Carter <Casey@Carter.net>
+Date: Sun Sep 8 12:13:53 2024 -0700
+
+ [associative.reqmts.general,unord.req.general] Fix cross-references to [container.alloc.reqmts] and [container.reqmts] (#7249)
+
+ Both paragraphs incorrectly point to [container.reqmts] instead of [container.alloc.reqmts] for "the requirements of an allocator-aware container".
+
+commit d930c5fa6728dd0b599f9c7918a2f0a0f747aaa2
+Author: Jan Schultke <me@eisenwave.net>
+Date: Mon Sep 16 20:35:33 2024 +0200
+
+ [expr.delete] Remove stray "the" between words (#7253)
+
+commit 9243ba5befaea8fd3e878e6114942db8d556a6e0
+Author: Steve Downey <sdowney@gmail.com>
+Date: Tue Sep 17 06:13:18 2024 -0400
+
+ [optional.assign] Use itemized list for operator=(U&& v) constraints (#7255)
+
+commit 4930897a2a45fa57fd9d766a24229a9e3f14f23e
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sat Aug 21 13:58:22 2021 +0200
+
+ [dcl.spec.general,dcl.fct.spec] Clarify duplication of decl-specifiers
+
+commit d0c00bf629f4b91d19176c2397aa3ff7c1c0ce63
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Sep 26 18:49:15 2024 +0200
+
+ [tab:lex.charset.literal] Shorten table heading
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 945b1c071ed511d11a2152aa70e08290f91a7856
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Sep 26 19:11:58 2024 +0200
+
+ [tab:re.matchflag] Shorten table heading
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 4e34492bc7279fedb0e066f4925860e686fa81dc
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Sep 26 19:43:50 2024 +0200
+
+ [rand.req] Fix table headers for longtable continued on following page
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 2b1e6d2952987bf4ada8275212a7bb297bb0c1c7
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Sep 26 20:19:01 2024 +0200
+
+ [macros] Fix duplicate vertical lines visible in tables in [optional.assign]
+
+ Fixes ISO/CS comment (C++23 proof)
+
+commit 0680a08ee677e0970b4460fd614f58b122845047
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Thu Sep 26 21:59:34 2024 +0100
+
+ [ios.init] Remove unused Init::init_cnt static member (#7263)
+
+ The text that made use of this variable was removed by LWG1123 and has
+ not been present in the WP since N3090. The effects of Init construction
+ and destruction are specified entirely without the use of this variable,
+ so it serves no purpose now.
+
+commit afdd158f555892507bc44c6d372c3b45a7f09832
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri Sep 27 00:09:11 2024 +0200
+
+ [styles] Format title of \codeblocktu using 'caption' package
+
+ This restores the C++20 status of the formatting.
+
+commit 2b3e09e2cc773b7205310917c5a6b2bdd87340af
+Author: Casey Carter <Casey@Carter.net>
+Date: Tue Oct 1 03:22:29 2024 -0700
+
+ [inplace.vector.cons] "Constructs an object" is redundant (#7252)
+
+commit 70954edf0b2c915d9b2ca4a1cff99b1c1cba2089
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Tue Oct 1 23:09:04 2024 -0400
+
+ [depr.lit] Fix grammar according to P2361R6
+
+ P2361R6 introduced the notion of unevaluated strings, and
+ updated the grammar for literal operator function accodingly.
+ Unfortunely, the corresponding grammar reference that was
+ deprecated was not similarly updated.
+
+commit 08b167d5476c9fd02a7a0484ae031cb358a99ddf
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Sat Oct 5 22:24:02 2024 +0100
+
+ [priqueue.cons.alloc] Add missing initialization for comp (#7291)
+
+ This is consistent with p2 and p8 which also value-initialize it.
+
+commit 738b14f990e0575a3ca63b579d87edb5a6133ffb
+Author: Casey Carter <Casey@Carter.net>
+Date: Sat Oct 5 15:03:04 2024 -0700
+
+ [array.creation] Clarify "Mandates" for `to_array` overloads (#7286)
+
+ It's confusing that these `to_array` overloads require `T` to be constructible from various types, when they actually construct `remove_cv_t<T>` objects. We experts know that initialization doesn't depend on the cv-qualification of the target type ([dcl.init.general]/16), but there's no need to make readers jump through hoops to understand the spec.
+
+commit d5c9f2d248860e8e7de78f595b93a8b01c7e02c8
+Author: Lewis Baker <lewissbaker@users.noreply.github.com>
+Date: Tue Oct 8 21:07:48 2024 +1030
+
+ [exec.split,exec.when.all] Fix typo stop_callback_of_t -> stop_callback_for_t (#7295)
+
+commit 58c01ba5765e8c91ce4aab462d25247167a7e481
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Tue Oct 8 11:38:42 2024 +0100
+
+ [re.grammar] Add missing backslash to UnicodeEscapeSequence example (#7290)
+
+commit ebef68dd9f1c3bccfe06d14eb83c05a7a35dcec3
+Author: Lewis Baker <lewissbaker@users.noreply.github.com>
+Date: Tue Oct 8 22:06:23 2024 +1030
+
+ [exec.just] Add missing LaTeX escape for product-type construction (#7216)
+
+commit 7ea8f59e19842e720360f15b64c2199ea27641ac
+Author: A. Jiang <de34@live.cn>
+Date: Thu Oct 10 17:53:54 2024 +0800
+
+ [mutex.syn] Add missing ',' for consistency
+
+commit 7c6322a59e3359c5002357831328b25939cd5383
+Author: Lewis Baker <lewissbaker@users.noreply.github.com>
+Date: Sun Oct 13 04:07:30 2024 +1030
+
+ [stoptoken.concepts] Remove redundant 'swappable<Token>' clause from 'stoppable_token' concept (#7299)
+
+ The `stoppable_token<Token>` concept requires both `copyable<Token>` and `swappable<Token>`. However, the `copyable<Token>` requirement already subsumes `movable<Token>`, which subsumes `swappable<Token>`.
+
+ Therefore the requirement for `swappable<Token>` can be removed from the `stoppable_token` concept definition with no semantic change.
+
+commit 9bf42221ab5a52ef10cb980a22e8a9617dbbf18b
+Author: Andreas Krug <153394595+Andreas-Krug@users.noreply.github.com>
+Date: Sat Oct 12 22:39:57 2024 +0200
+
+ [rcu.syn] Add missing ',' in comment (#7301)
+
+commit a0411db859cf1eabc2be24a5d2add4eaf288dac5
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon Oct 14 12:30:30 2024 +0200
+
+ [expr.const] Add paragraph number for general example
+
+commit 3982d5d5758df949e3c2e0174c72758189be6f2e
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Mon Oct 14 08:54:22 2024 -0400
+
+ [except.ctor] Retitle subclause as 'stack unwinding' (#7282)
+
+ The purpose of this subclause is to define stack unwinding,
+ which in specified in terms of the lifetime of objects, not
+ just class types. Hence, while much of the text is addressing
+ interactions with contructors and destructors (the original
+ subclause title) it does more than just that.
+
+commit 4eb30d3d618ef44ae3925a1a62090bbbbfe8cabf
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Wed Oct 16 07:39:15 2024 -0400
+
+ [cpp.subst] change "proprocessing file" to "translation unit" (#7293)
+
+ The term 'preprocessing translation unit' is defined in [lex.separate]
+ while the term 'preprocessing file' is never defined, and is
+ not used anywhere else in the standard. Prefer to use the
+ specified term, as it reasonably covers this case.
+
+commit 40228c690cb8d2ac27bd54bdddeabe425bd022b2
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Wed Oct 16 07:40:20 2024 -0400
+
+ [cpp.import] Change "directive" to "definition" in "active macro directive" (#7292)
+
+ The term 'active macro directive' is defined in p6, but never used.
+ Meanwhile, there are multiple uses of 'active macro definition' but
+ that term is never defined, including in the very sentence following
+ the definition of the unused term, and in other clauses that
+ cross-reference to this clause for their definition.
+
+commit 47da0e8b88bf1aa20aa474edf04a6d29e70b7563
+Author: Anders Schau Knatten <anders@knatten.org>
+Date: Wed Oct 16 13:41:26 2024 +0200
+
+ [over.oper.general] Change "basic type" to "fundamental type" (#7287)
+
+ The term "basic type" is used twice in this note but it's never defined anywhere, nor used.
+
+commit 7fe7519a5af674cd914344c650529f743fd92fc2
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Tue Oct 1 22:13:53 2024 -0400
+
+ [except.handle] Remove confusing comparison to variadic functions
+
+ The analogy that the ellipsis in an exception handler was similar to an
+ ellipsis in a function declaration may have made sense at one time, but
+ the comparison with a syntax using a macro based API calling 'va_arg'
+ to access its contents --- something that is not possible for an
+ exception handler --- seems more confusing than helpful today.
+
+commit d225f51f8cb799fb014cb73beb7dcccc044392cc
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Tue Aug 20 11:58:24 2024 +0100
+
+ [text.encoding.aliases] Add note about what isn't required
+
+ Make it explicit that `copyable` is intended, rather than `semiregular`,
+ and that the return types of `begin()` and `end()` can differ.
+
+ Also remove a FIXME comment for something that doesn't need fixing.
+ These requirements on a type are specified in our usual form, it would
+ be wrong to use _Remarks_: or _Requires_: here.
+
+commit 6338d95ae620f5e4d37d27a39a40f9de9af37b77
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Wed Oct 16 08:47:02 2024 -0400
+
+ [lex.charset] Introduce parent subclause [lex.char] for character sets and UCNs (#7067)
+
+ The grammar for universal-character-name is oddly sandwiched into the
+ middle of the subclause talking about the different character sets used
+ by the standard. To improve the flow, extract that grammar into its own
+ subclause.
+
+ In the extraction, I make three other clarifying changes. First, describe
+ this new subclause as 'a way to name any element of the of the translation
+ character set using just the basic character set' rather than simply
+ 'a way to name other characters'. Then, merge the sentence on where universal
+ characters are prohibited into the new intro sentence describing universal
+ characters, to make clear that there is no contradiction between nominating
+ a character, and how that character can be used. Finally, remove the 'one of'
+ in the grammar where there is only one option to choose.
+
+commit 9b6b757f34bf4a1eeb6a66481a444b83f1ee5770
+Author: Matthias Kretz <m.kretz@gsi.de>
+Date: Thu Sep 12 21:41:02 2024 +0200
+
+ [sf.cmath.assoc.laguerre,sf.cmath.assoc.legendre] Add reference to eq
+
+ The associated Laguerre/Legendre functions build on the
+ Laguerre/Legendre functions, which are defined in different equations.
+ Point to them from the associated functions.
+
+ Also use the correct \ell as used in the formula.
+
+commit 0456a32e41772b0a68b4055fb4e6533cb64e0e3d
+Author: Yihe Li <winmikedows@hotmail.com>
+Date: Thu Sep 5 23:59:58 2024 +0800
+
+ [utility.syn, flat.map.defn] Remove all [[nodiscard]] from library wording
+
+commit 8b2c7fc3c58bd109c82a016ee2cc5b691bdcd853
+Author: Eisenwave <me@eisenwave.net>
+Date: Mon Jun 10 23:22:04 2024 +0200
+
+ [expr.new] Extend example for new-expressions with zero size arrays
+
+commit fb34daf31b53389cc35b3f5f65a69785fc6dd1de
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Tue Jul 23 22:32:52 2024 -0400
+
+ [char.traits] Better cross-reference several headers
+
+commit 220cb742e8056ad033ad8dce5630d7d3acaa4c7d
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Wed Oct 16 15:37:39 2024 +0100
+
+ [debugging] Move [debugging] to the end of Clause [diagnostics]
+
+ Part of the C++26 clause restructuring (#5315).
+
+commit 7a2dafa6b4cca842e264bfd544b69452fb448c39
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Wed Oct 16 15:43:39 2024 +0100
+
+ [execpol] Move [execpol] to the end of subclause [algorithms.parallel]
+
+ Part of the C++26 clause restructuring (#5315).
+
+commit 93e2e1c6bcf5e9c3e551d964978e8bf241c392a4
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Wed Oct 16 15:52:54 2024 +0100
+
+ [type.index] Move [type.index] into subclause [support.rtti]
+
+ The subclause is integrated into the structure of [support.rtti],
+ meaning that the synopsis becomes a sibling of the rest, and the
+ subdivisions of the remaining text are removed (in analogy with
+ [type.info]).
+
+ Part of the C++26 clause restructuring (#5315).
+
+commit cdb120a4aee270f4e6e40dd7b07885c70651224e
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Wed Oct 16 17:25:51 2024 +0100
+
+ [containers] Move synopses right in front of the classes they define
+
+ Part of the C++26 clause restructuring (#5315).
+
+commit b7e389c9feca4839f77ad60985f509e01f96a399
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Wed Oct 16 15:27:06 2024 +0100
+
+ [std] Reorder clauses: [algorithm], [strings]
+
+ Part of the C++26 clause restructuring (#5315).
+
+commit 5512050c2db44d87566d25ce4f70b530624cb330
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Wed Oct 16 15:36:47 2024 +0100
+
+ [std] Create new top-level Clause [text], following [strings]
+
+ Part of the C++26 clause restructuring (#5315).
+
+commit fc6f670832980fc7b8219cb6945592cbe45d9239
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Wed Oct 16 19:01:21 2024 +0100
+
+ [text, re] Move [re] into [text]
+
+ Part of the C++26 clause restructuring (#5315).
+
+commit 5d106373aada591874ab5e38301502b3012e0502
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Wed Oct 16 19:06:03 2024 +0100
+
+ [text, localization] Move [localization] into [text]
+
+ The subclause [text.encodings] is extracted and elevated to a sibling
+ subclause of [localization].
+
+ Part of the C++26 clause restructuring (#5315).
+
+commit 804846a56f7e73dafe4ebd621fa81097d2e94603
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Wed Oct 16 20:15:42 2024 +0100
+
+ [charconv, format] Move [charconv], [format] to [text]
+
+ Part of the C++26 clause restructuring (#5315).
+
+commit 4b1a9a76c29c31cc3f679a8bdb1603842baf3501
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Wed Oct 16 20:31:33 2024 +0100
+
+ [text, c.strings] Move text-related parts of [c.strings] to [text]
+
+ The text-related subclauses [cctype.syn], [cwctype.syn], [cwchar.syn],
+ [cuchar.syn], and [c.mb.wcs] are moved to a new subclause [text.c.strings].
+
+ Part of the C++26 clause restructuring (#5226, #5315).
+
+commit 8003b627a7e336c2e9f350a3bb1ad395ec7c1cc7
+Author: lprv <100177227+lprv@users.noreply.github.com>
+Date: Wed Oct 16 19:41:35 2024 +0000
+
+ [expr, temp.arg.nontype] Use 'pointer to' instead of 'address of' (#6174)
+
+ Specifically, in:
+ * [expr.prim.lambda.closure]p8, p11
+ * [expr.const]p13.3
+ * [temp.arg.nontype]p3
+
+commit 198e991fed47efcd8b7fe1ad98ecde4d8722a201
+Author: Alisdair Meredith <alisdairm@me.com>
+Date: Wed Oct 2 15:55:49 2024 -0400
+
+ [except.handle] group all paragraphs on searching for handler
+
+ This commit moves all of the paragraphs involved in the search for a
+ handler for an exception into a single logical sequence.
+
+ After this change, [except.spec] deals only with specifying the
+ 'noexcept' function decorator and its interaction with the
+ 'noexcept' operator, and contains no text regarding exceptions
+ themselves. It might be appropriate to move that subclause into
+ the [dcl] structure at a future date.
+
+
+
diff --git a/papers/n4994.md b/papers/n4994.md
new file mode 100644
index 0000000000..223aaa59bd
--- /dev/null
+++ b/papers/n4994.md
@@ -0,0 +1,590 @@
+# N4994 Editors' Report -- Programming Languages -- C++
+
+Date: 2024-10-16
+
+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.
+
+## New papers
+
+ * [N4993](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/n4993.pdf) is the
+ current working draft for C++26. It replaces
+ [N4988](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/n4988.pdf).
+ * N4994 is this Editors' Report.
+
+## Draft approval
+
+The previous drafts
+[N4986](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/n4986.pdf)
+and
+[N4988](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/n4988.pdf)
+were not approved at any WG21 meeting. For approval of this draft, N4993,
+please consult the previous Editors' reports
+[N4987](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/n4987.html)
+and
+[N4989](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/n4989.html)
+as well as this one.
+
+## No motions
+
+There have been no new, approved WG21 motions.
+This revision contains only editorial changes.
+
+A few of the editorial changes fix mistakes in our LaTeX sources that were
+reported to us by the ISO secretariat during the ongoing publication of C++23.
+
+## Editorial changes
+
+### Major editorial changes
+
+For this revision, we have reorganised several clauses and subclauses.
+As a reminder: the editorial team aims to perform only one major reorganisation
+that changes top-level clause numbers per C++ revision, and this is it for C++26.
+
+The changes create a new clause "Text processing library `[text]`" that collects
+formatting, conversions, locales, regular expressions, and text-related C library
+facilities. Clauses are rearranged as:
+
+ * Algorithms library `[algorithms]`
+ * Strings library `[strings]`
+ * Text processing library `[text]`
+ * Numerics library `[numerics]`
+ * Time library `[time]`
+ * Input/output library `[input.output]`
+
+The new `[text]` clause obtains the following contents:
+
+ * Primitive numeric conversions `[charconv]`, from `[utilities]`
+ * Formatting `[format]`, from `[utilities]`
+ * Text encodings identification `[text.encoding]`, extracted from `[localization]`
+ * Localization library `[localization]`
+ * Regular expressions library `[re]`
+ * C library facilities `[cctype.syn]`, `[cwctype.syn]`, `[cwchar.syn]`, `[cuchar.syn]`, and `[c.mb.wcs]`
+
+Additionally, the following subclauses are moved:
+
+* Debugging `[debugging]` from `[utilities]` to the end of `[diagnostics]`
+* Execution policies `[execpol]` from `[utilities]` to the end of `[algorithms.parallel]`
+* Class `type_index` `[type.index]` from `[utilities]` to `[support.rtti]`
+
+This removes a number of unrelated clauses from the large `[utilities]` clause.
+
+Finally, we spread the synopses in `[containers]` out to appear right in front
+of the classes they define.
+
+### Minor editorial changes
+
+A log of editorial fixes made to the working draft since N4988 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/n4988...n4993).
+
+ commit 15a43d522467d389bd9340081d65dbf17d44d255
+ Author: Thomas Köppe