From 46fc532cfecb0b84099ef15dbddf6290260aa953 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Thu, 17 Jun 2021 19:06:50 +0100 Subject: [PATCH] Update configuration for new working draft N4892 and add corresponding Editors' Report N4893 --- papers/n4893.html | 625 +++++++++++++++++++++++++++++++++++++++++++++ papers/n4893.md | 493 +++++++++++++++++++++++++++++++++++ papers/wd-index.md | 1 + source/config.tex | 2 +- 4 files changed, 1120 insertions(+), 1 deletion(-) create mode 100644 papers/n4893.html create mode 100644 papers/n4893.md diff --git a/papers/n4893.html b/papers/n4893.html new file mode 100644 index 0000000000..4199ee04d2 --- /dev/null +++ b/papers/n4893.html @@ -0,0 +1,625 @@ + + + +N4893 + + +

N4893 Editors' Report -- Programming Languages -- C++

+ +

Date: 2021-06-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 +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 most of the draft +motion applications.

+ +

New papers

+ + + +

Motions incorporated into working draft

+ +

Core working group polls

+ +

CWG poll 1: Accept as Defect Reports all issues in P2386R0 +(Core Language Working Group “ready” Issues for the June, 2021 +meeting) and apply the proposed resolutions to the C++ working paper.

+ +

CWG poll 2: Apply the changes in P1938R3 +(if consteval) to the C++ working paper.

+ +

CWG poll 3: Apply the changes in P2186R2 +(Removing Garbage Collection Support) to the C++ working paper.

+ +

CWG poll 4: Accept P1949R7 +(C++ Identifier Syntax using Unicode Standard Annex 31) as a Defect Report and +apply the changes therein to the C++ working paper.

+ +

CWG poll 5: Accept P2156R1 +(Allow Duplicate Attributes) as a Defect Report and apply the changes therein to +the C++ working paper.

+ +

CWG poll 6: Apply the changes in P1401R5 +(Narrowing contextual conversions to bool) to the C++ working paper.

+ +

CWG poll 7: Apply the changes in P2223R2 +(Trimming whitespaces before line splicing) to the C++ working paper.

+ +

CWG poll 8: Apply the changes in P1847R4 +(Make declaration order layout mandated) to the C++ working paper.

+ +

CWG poll 9: Apply the changes in P2201R1 +(Mixed string literal concatenation) to the C++ working paper.

+ +

Library working group polls

+ +

LWG polls 1 and 2 appertain to the Concurrency TS, not the C++ working paper.

+ +

LWG poll 3: Apply the changes for all Tentatively Ready issues in P2385R0 +(C++ Standard Library Issues to be moved in Virtual Plenary, June 2021) to the +C++ working paper.

+ +

LWG poll 4: Apply the changes in P1132R7 +P1132R8 +(out_ptr - a scalable output pointer abstraction) to the C++ working +paper. See below for a change of paper.

+ +

LWG poll 5: Apply the changes in P1328R1 +(Making std::type_info::operator== constexpr) to the C++ working paper.

+ +

LWG poll 6: Apply the changes in P0448R4 +(A strstream replacement using span as buffer) to the C++ working paper.

+ +

LWG poll 7: Apply the changes in P1425R4 +(Iterators pair constructors for stack and queue) to the C++ working paper.

+ +

LWG poll 8: Apply the changes in P1518R2 +(Stop overconstraining allocators in container deduction guides) to the C++ +working paper.

+ +

LWG poll 9: Apply the changes in P0401R6 +(Providing size feedback in the Allocator interface) to the C++ working paper.

+ +

LWG poll 10: Apply the changes in P1659R3 +(starts_with and ends_with) to the C++ working paper.

+ +

LWG poll 11: Apply the changes in P1951R1 +(Default Arguments for pair's Forwarding Constructor) to the C++ working +paper.

+ +

LWG poll 12: Apply the changes in P1989R2 +(Range constructor for std::string_view 2: Constrain Harder) to the C++ +working paper.

+ +

LWG poll 13: Apply the changes in P2136R3 +(invoke_r) to the C++ working paper.

+ +

LWG poll 14: Apply the changes in P2166R1 +(A Proposal to Prohibit std::basic_string and std::basic_string_view +construction from nullptr) to the C++ working paper.

+ +

Note: The remaining changes are to be considered defects against C++20.

+ +

LWG poll 15: Apply the changes in P2231R1 +(Missing constexpr in std::optional and std::variant) to the C++ working +paper, as a defect report for C++20.

+ +

LWG poll 16: Apply the changes in P2216R3 +(std::format improvements) to the C++ working paper, as a defect report for +C++20.

+ +

LWG poll 17: Apply the changes in P2281R1 +(Clarifying range adaptor objects) to the C++ working paper. This resolves LWG +issues 3509 and 3510.

+ +

LWG poll 18: Apply the changes in P2328R1 +(join_view should join all views of ranges) to the C++ working paper, as a +defect report for C++20.

+ +

LWG poll 19: Apply the changes in P2325R3 +(Views should not be required to be default constructible) to the C++ working +paper, as a defect report for C++20.

+ +

LWG poll 20: Apply the changes in P2210R2 +(Superior String Splitting) to the C++ working paper, as a defect report for +C++20.

+ +

LWG poll 21: Apply the changes in P2367R0 +(Remove misuses of list-initialization from Clause 24) to the C++ working paper, +as a defect report for C++20.

+ +

Editorial fixes

+ +

Changes to motions

+ + + +

Minor editorial changes

+ +

A log of editorial fixes made to the working draft since N4885 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 7faee4ca019296fd2572df324dcae70ac495e6e4
+Author: cor3ntin <corentinjabot@gmail.com>
+Date:   Sat Apr 10 10:45:20 2021 +0200
+
+    [std] Spell "whitespace" consistently (#4557)
+
+    Unify the spellings "whitespace", white-space", and "white space"
+    by using "whitespace" consistently.
+
+commit 34d0392e2f32ea19aebab4919a525a3a9679594f
+Author: languagelawyer <38548419+languagelawyer@users.noreply.github.com>
+Date:   Fri Apr 16 20:39:04 2021 +0300
+
+    [intro.object] Turn non-normative wording into a Note (#4490)
+
+    Remove incorrect wording.
+
+commit f9dac664a11e438ea0dd803f3e5af5675e9fce0a
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Fri Apr 2 12:09:52 2021 +0200
+
+    [ranges.syn] Add primary templates for tuple-like protocol
+
+    The primary templates tuple_size and tuple_element
+    are partially specialized, and should be declared
+    before doing so.
+
+commit 7f7700143accb1447e193ed8f64b4ebe5efab215
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Sat Mar 27 14:10:47 2021 +0100
+
+    [except.spec] Clarify potentially-throwing functions
+
+    Expressions are potentially-throwing; functions have a
+    potentially-throwing exception specification.
+
+commit a1d8bc1e81ba0b1570c53879bad41536648ae916
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Fri Mar 26 23:03:53 2021 +0100
+
+    [format.context] Rephrase recommended practice
+
+commit 5e3a688fb6ffd88c099e54172899c08364a7dada
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Fri Mar 19 08:54:57 2021 +0100
+
+    [except.ctor] Remove false claim about automatic objects
+
+    CWG1774 clarified that partially-constructed objects may not be of
+    automatic storage duration. CWG2256 re-introduced that false
+    claim.
+
+commit a912904092fcf3af0bdc17c394971f07a899e7d9
+Author: Vlad Serebrennikov <brainvlad@gmail.com>
+Date:   Fri Apr 30 19:27:56 2021 +0300
+
+    [lex.string] Change "string-literal" to "string literal object" (#4549)
+
+commit e6e47706cb21496031dddaffdece2c5ff5f5e960
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Sun May 2 12:17:40 2021 +0200
+
+    [template.bitset.general,bitset.members] Use injected-class-name
+
+commit 95ff48305153edf3af4b136eff48f93ea68867d0
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Sun May 2 12:21:17 2021 +0200
+
+    [bitset.operators] Add missing template-head for operator functions
+
+commit eeeb27394f8fd4c9cf38d3071338de17759c859e
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Sun May 2 16:43:22 2021 +0200
+
+    [forward.list] Rename stable label from [forwardlist]
+
+    This makes the labels consistent.
+
+commit 7e0beb7c3aacbd53fee0450196a12d2b8fdd6f5d
+Author: morinmorin <mimomorin@gmail.com>
+Date:   Wed May 19 04:26:19 2021 +0900
+
+    [tuple.elem] Replace "member variables" with "non-static data members" (#4602)
+
+commit fc0e8902effe4cb195bb05eb62311a9eb0aea384
+Author: timsong-cpp <rs2740@gmail.com>
+Date:   Thu May 20 15:21:09 2021 -0500
+
+    [range.elements.sentinel] Correct return type of operator- (#4603)
+
+    This is a missed edit from LWG3406.
+
+commit 6fbc8df1b99e49a015bdc976a83044be0cc1344f
+Author: birbacher <frank.birbacher@gmail.com>
+Date:   Fri May 21 18:28:01 2021 +0200
+
+    [vector.bool] Remove top-level const from parameter declaration (#4608)
+
+commit 046c4d349ab4f0630d586b5143c2d313ec820dac
+Author: Jason Cobb <jason.e.cobb@gmail.com>
+Date:   Fri May 21 14:24:26 2021 -0400
+
+    [expr.static.cast] fix wording for static_cast from pointer to base to pointer to derived (#4605)
+
+commit 7789f707ec229fe16329fa890e28bd14eb85bd18
+Author: Casey Carter <Casey@Carter.net>
+Date:   Fri May 21 12:09:35 2021 -0700
+
+    [vector.bool] reference has multiple assignment operators (#4607)
+
+commit ab87501552f7ed46b542543d0e8536cc7f52d4bb
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Fri Feb 5 22:17:12 2021 +0100
+
+    [defns.well.formed] Fix definition of 'well-formed'
+
+commit 9b76d32e926b98cee1e9aa9556c660b4fd23c47b
+Author: Jonathan Wakely <cxx@kayari.org>
+Date:   Tue May 25 14:59:51 2021 +0100
+
+    [list.ops] Fix name of parameter in list::unique effects
+
+commit b7c06451fd87eea847613e83ca5316b2a4d072fb
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Sat May 29 08:53:46 2021 +0200
+
+    [temp.over.link] Add missing \grammarterm marker (#4609)
+
+commit d006a0db172f63fb4a07704bad3b2237f990e4f2
+Author: Jonathan Wakely <cxx@kayari.org>
+Date:   Thu Oct 8 10:17:43 2020 +0100
+
+    [rand.eng.sub] drop no-op modulo operation
+
+    The e() mod 2^32 operation is a no-op, because e.max() < 2^32.
+
+commit 337c7dbd0a3680ae146db21e1735433e53b6657e
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Thu Nov 5 00:25:11 2020 +0100
+
+    [expr] Use 'qualification-combined' and 'qualification-decomposition'
+
+    The previous names 'cv-combined' and 'cv-decomposition' are
+    no longer adequate since a qualification conversion can now
+    convert to an array of unknown bounds.
+
+commit 1bc43817ce3caef3ed68cbc92046e2bc2738e335
+Author: Stephan T. Lavavej <stl@nuwen.net>
+Date:   Sat May 29 02:59:05 2021 -0700
+
+    [time.clock.cast.sys],[time.clock.cast.utc] Use Duration2 for clarity. (#4565)
+
+    [time.clock.cast.sys],[time.clock.cast.utc] Use Duration2 for clarity.
+
+commit 4a2546a1857f7b55eab395589893bdd0999956b2
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Wed Apr 21 23:23:30 2021 +0200
+
+    [expr.await] Clarify rethrowing exceptions from await-suspend
+
+commit 72855b062397efdbd30ec5d8c88317d19e27776b
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Fri Apr 2 12:23:30 2021 +0200
+
+    [dcl.init.aggr] An initializer list is brace-enclosed
+
+    Do not claim that a designated-initializer-list or
+    an initializer-list is an initializer list.
+
+commit 93d7a96979ff071b76dc211fd4625654b94e8a67
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Thu Jan 14 12:20:20 2021 +0100
+
+    [basic.lookup.unqual] Add examples for conversion-function-ids
+
+commit 890b339661891896ee60d28f19be79ecda4d6296
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Sat Mar 27 13:16:52 2021 +0100
+
+    [namespace.def.general] Clarify inline namespaces
+
+    Highlight 'innermost enclosing' namespace.
+
+commit d6d36b48e5c5b8a63e4b93c2f75aa4f9f1e4862b
+Author: timsong-cpp <rs2740@gmail.com>
+Date:   Sat May 29 19:26:10 2021 -0500
+
+    [range.elements.overview] Correct example
+
+commit b0a253cc6ba0e7f556f5afefab94f7cc1d1e5ced
+Author: Thomas Köppe <tkoeppe@google.com>
+Date:   Tue Jun 1 12:56:45 2021 +0100
+
+    [expr.const.cast] Fix punctuation placement.
+
+commit caf7428fd6c807f30538042cf9bf1b27b8772b01
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Thu Jun 3 09:53:27 2021 +0200
+
+    [ranges] Rename 'not-same-as' to 'different-from'.
+
+    'not-same-as' is not quite equivalent to 'not same_as'.
+
+commit fb3bea889899c5ea5c0f70b12fc72129f7d1692a
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Tue Jun 1 22:39:52 2021 +0200
+
+    [expr] Add cross-references for 'local entity'.
+
+    A local entity is not any entity that is local, so add
+    cross-references for clarification.
+
+commit 77d389ffccb7c7ba294834d3196a5bccf25d28e0
+Author: timsong-cpp <rs2740@gmail.com>
+Date:   Mon Jun 7 12:53:22 2021 -0500
+
+    [ranges] Use views::meow in examples instead of meow_view
+
+commit e03d76cb5067598a92105ad7c4841a3d18e5b5d0
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Fri Jun 11 22:42:33 2021 +0200
+
+    [fs.path.native.obs] Remove bogus note.
+
+commit 20b924987e59d087af7b28df33490d34466f688c
+Author: Jonathan Wakely <cxx@kayari.org>
+Date:   Fri Jun 4 12:32:04 2021 +0100
+
+    [range.prim.data] Use ranges::begin(t) not ranges::begin(E)
+
+    This is consistent with the typo fixes for ranges::size done in
+    aa9c660a835540117123617a13b0ba1ab6dd801e as part of #3752.
+
+commit e9e2acb4cdff00236aa750c717e1951c655797df
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Thu Jun 17 22:40:23 2021 +0200
+
+    [format.syn] Remove extraneous commas in vformat_to declarations (#4705)
+
+commit d3fbad184abd1c327dd2dd097cd3caa17ada48af
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Fri Apr 2 21:55:37 2021 +0200
+
+    [basic.stc.static] Rephrase the definition of 'static storage duration'
+
+    This clarifies and centralizes the definition and
+    also avoids the undefined term 'local variable'.
+
+commit b6e0848db7a72560a7bfc84f16bd23abf6aab2d6
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Fri Jun 4 00:15:46 2021 +0200
+
+    [class.pre] Fix incorrect comment in example
+
+commit 1e889e06856a17f48e32a03a4272502dd67e1035
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date:   Fri Jun 18 19:07:50 2021 +0200
+
+    [temp.variadic] Rearrange description of pack expansion (#4543)
+
+commit 94340ede298a23927523ee28c1c04090416eb20d
+Author: Jonathan Wakely <cxx@kayari.org>
+Date:   Fri Jun 18 15:00:48 2021 +0100
+
+    [basic.string.general], [string.view.template.general] remove constexpr
+
+    There is no reason to declare a deleted function constexpr.
+
+commit 472e865817e17620ae4c88fef10e2983884b9f77
+Author: Thomas Köppe <tkoeppe@google.com>
+Date:   Fri Jun 18 22:26:14 2021 +0100
+
+    [range.utility.helper] Add missing '='
+
+commit 421a2e258e2848016df92939f5a1cfa865c7f795
+Author: Thomas Köppe <tkoeppe@google.com>
+Date:   Fri Jun 18 23:06:52 2021 +0100
+
+    [range.join.iterator] Add missing \tcode
+
diff --git a/papers/n4893.md b/papers/n4893.md new file mode 100644 index 0000000000..613dafaab0 --- /dev/null +++ b/papers/n4893.md @@ -0,0 +1,493 @@ +# N4893 Editors' Report -- Programming Languages -- C++ + +Date: 2021-06-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 most of the draft +motion applications. + +## New papers + + * [N4892](http://open-std.org/jtc1/sc22/wg21/docs/papers/2021/n4892.pdf) is the + current working draft for C++23. It replaces + [N4885](http://open-std.org/jtc1/sc22/wg21/docs/papers/2021/n4885.pdf). + * N4893 is this Editors' Report. + +## Motions incorporated into working draft + +### Core working group polls + +CWG poll 1: Accept as Defect Reports all issues in P2386R0 +(Core Language Working Group “ready” Issues for the June, 2021 +meeting) and apply the proposed resolutions to the C++ working paper. + +CWG poll 2: Apply the changes in P1938R3 +(`if consteval`) to the C++ working paper. + +CWG poll 3: Apply the changes in P2186R2 +(Removing Garbage Collection Support) to the C++ working paper. + +CWG poll 4: Accept P1949R7 +(C++ Identifier Syntax using Unicode Standard Annex 31) as a Defect Report and +apply the changes therein to the C++ working paper. + +CWG poll 5: Accept P2156R1 +(Allow Duplicate Attributes) as a Defect Report and apply the changes therein to +the C++ working paper. + +CWG poll 6: Apply the changes in P1401R5 +(Narrowing contextual conversions to bool) to the C++ working paper. + +CWG poll 7: Apply the changes in P2223R2 +(Trimming whitespaces before line splicing) to the C++ working paper. + +CWG poll 8: Apply the changes in P1847R4 +(Make declaration order layout mandated) to the C++ working paper. + +CWG poll 9: Apply the changes in P2201R1 +(Mixed string literal concatenation) to the C++ working paper. + +### Library working group polls + +LWG polls 1 and 2 appertain to the Concurrency TS, not the C++ working paper. + +LWG poll 3: Apply the changes for all Tentatively Ready issues in P2385R0 +(C++ Standard Library Issues to be moved in Virtual Plenary, June 2021) to the +C++ working paper. + +LWG poll 4: Apply the changes in P1132R7 +P1132R8 +(`out_ptr` - a scalable output pointer abstraction) to the C++ working +paper. *See below for a change of paper.* + +LWG poll 5: Apply the changes in P1328R1 +(Making `std::type_info::operator==` constexpr) to the C++ working paper. + +LWG poll 6: Apply the changes in P0448R4 +(A `strstream` replacement using `span` as buffer) to the C++ working paper. + +LWG poll 7: Apply the changes in P1425R4 +(Iterators pair constructors for `stack` and `queue`) to the C++ working paper. + +LWG poll 8: Apply the changes in P1518R2 +(Stop overconstraining allocators in container deduction guides) to the C++ +working paper. + +LWG poll 9: Apply the changes in P0401R6 +(Providing size feedback in the Allocator interface) to the C++ working paper. + +LWG poll 10: Apply the changes in P1659R3 +(`starts_with` and `ends_with`) to the C++ working paper. + +LWG poll 11: Apply the changes in P1951R1 +(Default Arguments for `pair`'s Forwarding Constructor) to the C++ working +paper. + +LWG poll 12: Apply the changes in P1989R2 +(Range constructor for `std::string_view` 2: Constrain Harder) to the C++ +working paper. + +LWG poll 13: Apply the changes in P2136R3 +(`invoke_r`) to the C++ working paper. + +LWG poll 14: Apply the changes in P2166R1 +(A Proposal to Prohibit `std::basic_string` and `std::basic_string_view` +construction from `nullptr`) to the C++ working paper. + +**Note:** The remaining changes are to be considered defects against C++20. + +LWG poll 15: Apply the changes in P2231R1 +(Missing `constexpr` in `std::optional` and `std::variant`) to the C++ working +paper, as a defect report for C++20. + +LWG poll 16: Apply the changes in P2216R3 +(`std::format` improvements) to the C++ working paper, as a defect report for +C++20. + +LWG poll 17: Apply the changes in P2281R1 +(Clarifying range adaptor objects) to the C++ working paper. This resolves LWG +issues 3509 and 3510. + +LWG poll 18: Apply the changes in P2328R1 +(`join_view` should join all views of ranges) to the C++ working paper, as a +defect report for C++20. + +LWG poll 19: Apply the changes in P2325R3 +(Views should not be required to be default constructible) to the C++ working +paper, as a defect report for C++20. + +LWG poll 20: Apply the changes in P2210R2 +(Superior String Splitting) to the C++ working paper, as a defect report for +C++20. + +LWG poll 21: Apply the changes in P2367R0 +(Remove misuses of list-initialization from Clause 24) to the C++ working paper, +as a defect report for C++20. + +## Editorial fixes + +### Changes to motions + +* **Poll CWG-3:** A few further minor mentions and references to pointer safety + have also been removed, as has the Annex C entry. + +* **Poll CWG-4:** References to URLs have been reworded very slightly to be + consistent with existing references (“available from:” instead of + “available at”). Subclause headings in the new Annex have been + changed from title case to sentence case. This is also the first motion create + a new Annex C entry, so the new Annex C section for C++20 has been created as + part of this change. + +* **Poll LWG-4:** An updated paper P1132R8 containing several editorial + corrections had been produced prior to the meeting, but the motions list had + inadvertently not been updated. It was made clear to WG21 that P1132R8 was + being polled instead of the obsolete revision P1132R7; the R8 revision has + been applied to the working paper. + +* **Poll LWG-12:** During review, it was identified that an erroneous `R` should + have said `remove_reference_t`. This has been corrected, with LWG's + awareness and consent. + +* **Poll LWG-16:** The resolution of LWG + 3539 that was adopted as part of LWG Poll-3 has been applied to the new + wording of this poll as well, adding `std::move` as appropriate. + +* **Poll LWG-19:** The wording incorporates changes that were contingent on the + adoption of LWG Poll-18. + +* **Poll LWG-20:** The resolution of LWG + 3533 that was adopted as part of LWG Poll-3 has been applied to the new + wording of this poll as well, changing the type and constraints of `base` as + appropriate. + +* **Poll LWG-21:** The wording incorporates additional changes to the new + wording introduced by LWG Poll-20. + +### Minor editorial changes + +A log of editorial fixes made to the working draft since N4885 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/n4885...n4892). + + commit 7faee4ca019296fd2572df324dcae70ac495e6e4 + Author: cor3ntin + Date: Sat Apr 10 10:45:20 2021 +0200 + + [std] Spell "whitespace" consistently (#4557) + + Unify the spellings "whitespace", white-space", and "white space" + by using "whitespace" consistently. + + commit 34d0392e2f32ea19aebab4919a525a3a9679594f + Author: languagelawyer <38548419+languagelawyer@users.noreply.github.com> + Date: Fri Apr 16 20:39:04 2021 +0300 + + [intro.object] Turn non-normative wording into a Note (#4490) + + Remove incorrect wording. + + commit f9dac664a11e438ea0dd803f3e5af5675e9fce0a + Author: Jens Maurer + Date: Fri Apr 2 12:09:52 2021 +0200 + + [ranges.syn] Add primary templates for tuple-like protocol + + The primary templates tuple_size and tuple_element + are partially specialized, and should be declared + before doing so. + + commit 7f7700143accb1447e193ed8f64b4ebe5efab215 + Author: Jens Maurer + Date: Sat Mar 27 14:10:47 2021 +0100 + + [except.spec] Clarify potentially-throwing functions + + Expressions are potentially-throwing; functions have a + potentially-throwing exception specification. + + commit a1d8bc1e81ba0b1570c53879bad41536648ae916 + Author: Jens Maurer + Date: Fri Mar 26 23:03:53 2021 +0100 + + [format.context] Rephrase recommended practice + + commit 5e3a688fb6ffd88c099e54172899c08364a7dada + Author: Jens Maurer + Date: Fri Mar 19 08:54:57 2021 +0100 + + [except.ctor] Remove false claim about automatic objects + + CWG1774 clarified that partially-constructed objects may not be of + automatic storage duration. CWG2256 re-introduced that false + claim. + + commit a912904092fcf3af0bdc17c394971f07a899e7d9 + Author: Vlad Serebrennikov + Date: Fri Apr 30 19:27:56 2021 +0300 + + [lex.string] Change "string-literal" to "string literal object" (#4549) + + commit e6e47706cb21496031dddaffdece2c5ff5f5e960 + Author: Jens Maurer + Date: Sun May 2 12:17:40 2021 +0200 + + [template.bitset.general,bitset.members] Use injected-class-name + + commit 95ff48305153edf3af4b136eff48f93ea68867d0 + Author: Jens Maurer + Date: Sun May 2 12:21:17 2021 +0200 + + [bitset.operators] Add missing template-head for operator functions + + commit eeeb27394f8fd4c9cf38d3071338de17759c859e + Author: Jens Maurer + Date: Sun May 2 16:43:22 2021 +0200 + + [forward.list] Rename stable label from [forwardlist] + + This makes the labels consistent. + + commit 7e0beb7c3aacbd53fee0450196a12d2b8fdd6f5d + Author: morinmorin + Date: Wed May 19 04:26:19 2021 +0900 + + [tuple.elem] Replace "member variables" with "non-static data members" (#4602) + + commit fc0e8902effe4cb195bb05eb62311a9eb0aea384 + Author: timsong-cpp + Date: Thu May 20 15:21:09 2021 -0500 + + [range.elements.sentinel] Correct return type of operator- (#4603) + + This is a missed edit from LWG3406. + + commit 6fbc8df1b99e49a015bdc976a83044be0cc1344f + Author: birbacher + Date: Fri May 21 18:28:01 2021 +0200 + + [vector.bool] Remove top-level const from parameter declaration (#4608) + + commit 046c4d349ab4f0630d586b5143c2d313ec820dac + Author: Jason Cobb + Date: Fri May 21 14:24:26 2021 -0400 + + [expr.static.cast] fix wording for static_cast from pointer to base to pointer to derived (#4605) + + commit 7789f707ec229fe16329fa890e28bd14eb85bd18 + Author: Casey Carter + Date: Fri May 21 12:09:35 2021 -0700 + + [vector.bool] reference has multiple assignment operators (#4607) + + commit ab87501552f7ed46b542543d0e8536cc7f52d4bb + Author: Jens Maurer + Date: Fri Feb 5 22:17:12 2021 +0100 + + [defns.well.formed] Fix definition of 'well-formed' + + commit 9b76d32e926b98cee1e9aa9556c660b4fd23c47b + Author: Jonathan Wakely + Date: Tue May 25 14:59:51 2021 +0100 + + [list.ops] Fix name of parameter in list::unique effects + + commit b7c06451fd87eea847613e83ca5316b2a4d072fb + Author: Jens Maurer + Date: Sat May 29 08:53:46 2021 +0200 + + [temp.over.link] Add missing \grammarterm marker (#4609) + + commit d006a0db172f63fb4a07704bad3b2237f990e4f2 + Author: Jonathan Wakely + Date: Thu Oct 8 10:17:43 2020 +0100 + + [rand.eng.sub] drop no-op modulo operation + + The e() mod 2^32 operation is a no-op, because e.max() < 2^32. + + commit 337c7dbd0a3680ae146db21e1735433e53b6657e + Author: Jens Maurer + Date: Thu Nov 5 00:25:11 2020 +0100 + + [expr] Use 'qualification-combined' and 'qualification-decomposition' + + The previous names 'cv-combined' and 'cv-decomposition' are + no longer adequate since a qualification conversion can now + convert to an array of unknown bounds. + + commit 1bc43817ce3caef3ed68cbc92046e2bc2738e335 + Author: Stephan T. Lavavej + Date: Sat May 29 02:59:05 2021 -0700 + + [time.clock.cast.sys],[time.clock.cast.utc] Use Duration2 for clarity. (#4565) + + [time.clock.cast.sys],[time.clock.cast.utc] Use Duration2 for clarity. + + commit 4a2546a1857f7b55eab395589893bdd0999956b2 + Author: Jens Maurer + Date: Wed Apr 21 23:23:30 2021 +0200 + + [expr.await] Clarify rethrowing exceptions from await-suspend + + commit 72855b062397efdbd30ec5d8c88317d19e27776b + Author: Jens Maurer + Date: Fri Apr 2 12:23:30 2021 +0200 + + [dcl.init.aggr] An initializer list is brace-enclosed + + Do not claim that a designated-initializer-list or + an initializer-list is an initializer list. + + commit 93d7a96979ff071b76dc211fd4625654b94e8a67 + Author: Jens Maurer + Date: Thu Jan 14 12:20:20 2021 +0100 + + [basic.lookup.unqual] Add examples for conversion-function-ids + + commit 890b339661891896ee60d28f19be79ecda4d6296 + Author: Jens Maurer + Date: Sat Mar 27 13:16:52 2021 +0100 + + [namespace.def.general] Clarify inline namespaces + + Highlight 'innermost enclosing' namespace. + + commit d6d36b48e5c5b8a63e4b93c2f75aa4f9f1e4862b + Author: timsong-cpp + Date: Sat May 29 19:26:10 2021 -0500 + + [range.elements.overview] Correct example + + commit b0a253cc6ba0e7f556f5afefab94f7cc1d1e5ced + Author: Thomas Köppe + Date: Tue Jun 1 12:56:45 2021 +0100 + + [expr.const.cast] Fix punctuation placement. + + commit caf7428fd6c807f30538042cf9bf1b27b8772b01 + Author: Jens Maurer + Date: Thu Jun 3 09:53:27 2021 +0200 + + [ranges] Rename 'not-same-as' to 'different-from'. + + 'not-same-as' is not quite equivalent to 'not same_as'. + + commit fb3bea889899c5ea5c0f70b12fc72129f7d1692a + Author: Jens Maurer + Date: Tue Jun 1 22:39:52 2021 +0200 + + [expr] Add cross-references for 'local entity'. + + A local entity is not any entity that is local, so add + cross-references for clarification. + + commit 77d389ffccb7c7ba294834d3196a5bccf25d28e0 + Author: timsong-cpp + Date: Mon Jun 7 12:53:22 2021 -0500 + + [ranges] Use views::meow in examples instead of meow_view + + commit e03d76cb5067598a92105ad7c4841a3d18e5b5d0 + Author: Jens Maurer + Date: Fri Jun 11 22:42:33 2021 +0200 + + [fs.path.native.obs] Remove bogus note. + + commit 20b924987e59d087af7b28df33490d34466f688c + Author: Jonathan Wakely + Date: Fri Jun 4 12:32:04 2021 +0100 + + [range.prim.data] Use ranges::begin(t) not ranges::begin(E) + + This is consistent with the typo fixes for ranges::size done in + aa9c660a835540117123617a13b0ba1ab6dd801e as part of #3752. + + commit e9e2acb4cdff00236aa750c717e1951c655797df + Author: Jens Maurer + Date: Thu Jun 17 22:40:23 2021 +0200 + + [format.syn] Remove extraneous commas in vformat_to declarations (#4705) + + commit d3fbad184abd1c327dd2dd097cd3caa17ada48af + Author: Jens Maurer + Date: Fri Apr 2 21:55:37 2021 +0200 + + [basic.stc.static] Rephrase the definition of 'static storage duration' + + This clarifies and centralizes the definition and + also avoids the undefined term 'local variable'. + + commit b6e0848db7a72560a7bfc84f16bd23abf6aab2d6 + Author: Jens Maurer + Date: Fri Jun 4 00:15:46 2021 +0200 + + [class.pre] Fix incorrect comment in example + + commit 1e889e06856a17f48e32a03a4272502dd67e1035 + Author: Jens Maurer + Date: Fri Jun 18 19:07:50 2021 +0200 + + [temp.variadic] Rearrange description of pack expansion (#4543) + + commit 94340ede298a23927523ee28c1c04090416eb20d + Author: Jonathan Wakely + Date: Fri Jun 18 15:00:48 2021 +0100 + + [basic.string.general], [string.view.template.general] remove constexpr + + There is no reason to declare a deleted function constexpr. + + commit 472e865817e17620ae4c88fef10e2983884b9f77 + Author: Thomas Köppe + Date: Fri Jun 18 22:26:14 2021 +0100 + + [range.utility.helper] Add missing '=' + + commit 421a2e258e2848016df92939f5a1cfa865c7f795 + Author: Thomas Köppe + Date: Fri Jun 18 23:06:52 2021 +0100 + + [range.join.iterator] Add missing \tcode diff --git a/papers/wd-index.md b/papers/wd-index.md index cd32e18968..90588db768 100644 --- a/papers/wd-index.md +++ b/papers/wd-index.md @@ -38,3 +38,4 @@ * [N4868](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/n4868.pdf) 2020-10 C++ Working Draft * [N4878](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/n4878.pdf) 2020-12 C++ Working Draft * [N4885](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/n4885.pdf) 2021-03 C++ Working Draft + * [N4892](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/n4892.pdf) 2021-03 C++ Working Draft diff --git a/source/config.tex b/source/config.tex index 11768d2f1c..b80f7aa780 100644 --- a/source/config.tex +++ b/source/config.tex @@ -1,7 +1,7 @@ %!TEX root = std.tex %%-------------------------------------------------- %% Version numbers -\newcommand{\docno}{Dxxxx} +\newcommand{\docno}{N4892} \newcommand{\prevdocno}{N4885} \newcommand{\cppver}{202002L}