diff --git a/papers/n4987.html b/papers/n4987.html new file mode 100644 index 0000000000..3099e7e867 --- /dev/null +++ b/papers/n4987.html @@ -0,0 +1,915 @@ + + +
+ + +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