diff --git a/papers/n4911.html b/papers/n4911.html new file mode 100644 index 0000000000..11b62cf3a1 --- /dev/null +++ b/papers/n4911.html @@ -0,0 +1,1027 @@ + + +
+ + +Date: 2022-03-17
+ +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 most of the draft +motion applications.
+ +CWG poll 1: Accept as Defect Reports all issues except issue 2502 in +P2533R0 +(Core Language Working Group "ready" Issues for the February, 2022 meeting) and +apply the proposed resolutions for all of the issues to the C++ working paper.
+ +CWG poll 2: Apply the changes in +P2173R1 +(Attributes on Lambda-Expressions) to the C++ Working Paper.
+ +CWG poll 3: Apply the changes in +P2493R0 +(Missing feature test macros for C++20 core papers) to the C++ Working Paper.
+ +LWG poll 1: Apply the changes for all Tentatively Ready issues in +P2531R0 (C++ +Standard Library Issues to be moved in Virtual Plenary, Feb. 2022) to the C++ +working paper.
+ +LWG poll 2: Apply the changes in
+P0323R12
+(std::expected
) to the C++ working paper.
LWG poll 3: Apply the changes in
+P0533R9
+(constexpr for <cmath>
and <cstdlib>
) to the C++ working paper.
LWG poll 4: Apply the changes in +P0627R6 +(Function to mark unreachable code) to the C++ working paper.
+ +LWG poll 5: Apply the changes in +P1206R7 +(ranges::to: A function to convert any range to a container) to the C++ working +paper.
+ +LWG poll 6: Apply the changes in
+P1413R3
+(Deprecate std::aligned_storage
and std::aligned_union
) to the C++ working
+paper.
LWG poll 7: Apply the changes in +P2255R2 (A +type trait to detect reference binding to temporary) to the C++ working paper.
+ +LWG poll 8: Apply the changes in
+P2273R3
+(Making std::unique_ptr
constexpr) to the C++ working paper.
LWG poll 9: Apply the changes in +P2387R3 +(Pipe support for user-defined range adaptors) to the C++ working paper.
+ +LWG poll 10: Apply the changes in
+P2440R1
+(ranges::iota
, ranges::shift_left
and ranges::shift_right
) to the C++
+working paper.
LWG poll 11: Apply the changes in
+P2441R2
+(views::join_with
) to the C++ working paper.
LWG poll 12: Apply the changes in
+P2442R1
+(Windowing range adaptors: views::chunk
and views::slide
) to the C++ working
+paper.
LWG poll 13: Apply the changes in
+P2443R1
+(views::chunk_by
) to the C++ working paper.
Poll CWG-2: The wording was adjusted to integrate with the new wording +from issue +CWG-2509 +to use the new term lambda-specifier-seq instead of the original +decl-specifier-seq.
Poll LWG-1: Issue +LWG-3616 +was skipped, since it had already been applied +editorially.
Poll LWG-8: The wording was integrated with the resolution of +LWG-3632.
We rearranged several clauses and subclauses. Over the years, the original +clause structure had been becoming less appropriate for the growing amount of +content, and we hope that the new structure is more suitable to the current (and +anticipated future) content.
+ +New top-level clause "Memory management library [mem]", after [diagnostics].
+This clause contains <memory>
, memory parts of <cstdlib>
, smart pointers,
+memory resources, and scoped allocators, previously part of [utilities].
The "Metaprogramming library [meta]" subclause from [utilities] is now a +new top-level clause, in between [mem] and [utilities]. We expect future +reflection material to be added to this clause.
The "Atomic operations [atomics]" clause has been integrated into the +top-level [thread] clause, which has been renamed to "Concurrency support +library [thread]".
"Bit manipulation [bit]" has been moved to the end of the [utilities] clause.
"Stacktrace [stacktrace]" has been moved to the end of the [diagnostics] clause.
"String view classes [string.view]" has been moved to immediately before +[string.classes].
"Allocation and deallocation functions [class.free]" has been moved to +immediately before [class.nest].
We are aiming to not change the top-level clause structure more than once per +standard publication cycle. We have had suggestions to create a new top-level +clause "Text" for text-related content (such as locales and regular expressions, +but also anticipating new material). We have not yet reached consensus, and we +will probably perform that reorganization during the C++26 cycle.
+ +We have begun replacing the large requirements tables in the library with more +conventional paragraphs, as described in editorial paper +P2416R2. +Each requirement is now presented in a style similar to that of function +declarations, followed by as many specification elements as appropriate. A new +"Result:" element has been added to capture the type of a type requirement, +and the type and value category of an expression requirement.
+ +We have applied these changes to the container, allocator, and regular +expression trait requirements.
+ +We have started introducing explicit LaTeX labels for defined terms, and we have +updated cross references to refer to those term labels instead of the label of +the subclause that contains the term. This does not change the presentation of +the reference, but makes it less likely that cross references are invalidated by +moving text around.
+ +In the future, we might extend this to turn the use of a term into a hyperlink +to the page on which the term's definition appears.
+ +A log of editorial fixes made to the working draft since N4901 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 04e0ea7074c9b0d0ca939821ce0f575c589df6b7
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Oct 21 23:52:55 2021 +0200
+
+ [pairs.pair] Use T1/T2, not first_type/second_type
+
+commit ed6e1b5da5d13449cf27c878c60e90892289f98a
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sat Oct 23 01:20:31 2021 +0200
+
+ [index] Fix dangling 'see' references
+
+ Also update the automatic check script to prevent
+ further occurrences.
+
+commit 3d1424716844aef59891d770709e19d83b5bea35
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sun Oct 24 22:05:40 2021 +0200
+
+ [ranges] Remove \expos markers for nested types (#4829)
+
+ An \expos marker should appear only on the first
+ declaration of a name.
+
+commit 741c20794fdc7aec28afcd9e6c52d6d184d2845c
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue Oct 26 16:36:39 2021 +0200
+
+ [class.copy.assign] Fix phrasing in note to avoid 'could'. (#4418)
+
+commit f3ab334c789ac89d2f6baf501d60716278cb8fa3
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sun Jul 4 23:30:42 2021 +0200
+
+ [contents] Add special lookup treatment for swap
+
+commit 280684c7824b6b7f62c003b909ccf3703d82681b
+Author: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
+Date: Mon Nov 8 07:19:14 2021 -0400
+
+ [defs] Update introduction to match ISO Directives (#5096)
+
+ Reference: https://www.iso.org/sites/directives/current/part2/index.xhtml#_idTextAnchor218
+
+commit 1567c481e3ca3c52f80e4a33db0f913ce1392c4d
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Tue Nov 9 09:31:08 2021 +0000
+
+ [intro.refs] Update dated reference to previous POSIX standard
+
+ Fixes #5098
+
+commit c8ec4ab45f58e3a16d8dcb12bd660dd2cf6e936a
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue Nov 23 17:22:38 2021 +0100
+
+ [refwrap.general] Add cross-references to the class synopsis (#5122)
+
+ Also rename [refwrap.const], because it does not specify
+ any destructors.
+
+commit b4bf594c81865f892bae81342ffb67c8ca8adb74
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue Nov 23 17:24:35 2021 +0100
+
+ [smartptr] Rework subclause nesting (#5119)
+
+commit d0cb462d511e5c9bf1ae7403c275f7c1ccf2543d
+Author: Hewill Kang <67143766+hewillk@users.noreply.github.com>
+Date: Sat Nov 20 02:16:40 2021 +0800
+
+ [range.adjacent.overview] Fix multi-character in example
+
+commit 26f6a1f7573ea54ed93b4e90d0e487fe39d44b87
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sat Nov 13 10:01:36 2021 +0100
+
+ [dcl.typedef] Add explanation for lookup failure in example
+
+commit c63e5e836e8dbe0ae6c7ebc1b2a1b1534d37a220
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed Nov 10 23:40:48 2021 +0100
+
+ [input.output] Fix headings of 'assign and swap' subclauses
+
+commit d2699e5de0c10085df309074d2dfbc57d5bc86bb
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed Oct 27 21:20:02 2021 +0200
+
+ [std] Replace 'OK:' in code comments with 'OK,'
+
+ In contrast to errors, which use a colon, an OK comment
+ is not followed by any unique reason why the code is
+ well-formed, but by a subjective highlighting of a fact.
+
+commit 5e3f1ad0ceb89feb2977a0531422bcbe9ab8fba7
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue Oct 26 21:49:15 2021 +0200
+
+ [stdatomic.h.syn] Fix missing \expos
+
+ and augment the autmatic checks accordingly.
+
+commit 16e60c63ad14f3f3fc9132a8443421a15ebec8fc
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue Nov 9 13:09:27 2021 +0100
+
+ [locale.time.get] Replace 'ISO/IEC 9945' with 'POSIX'
+
+ We introduce POSIX as an alias for ISO/IEC 9945, and we use 'POSIX'
+ everywhere else.
+
+commit 31c32e035770797eedc69f150c3a3484bbe828a5
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue Nov 9 17:54:18 2021 +0100
+
+ [locale.time.get.virtuals] Use 'conversion specification'
+
+ POSIX does not define the term 'conversion directive'.
+
+commit fbab3f13719c34affdb7b712aed7f6d2313570d7
+Author: languagelawyer <38548419+languagelawyer@users.noreply.github.com>
+Date: Tue Nov 23 20:03:13 2021 +0300
+
+ [defns.access, basic.lval] Clarify what can be accessed and how (#4777)
+
+commit 5475bdab828b3585a21172945303ccebbcefb516
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Oct 21 22:11:07 2021 +0200
+
+ [c.mb.wcs] mbrtoc8 stores code units, not characters
+
+commit ba4bb3ee56b94b63d0d1e5914a136a04b1620052
+Author: mordante <koraq@xs4all.nl>
+Date: Tue Nov 23 18:13:22 2021 +0100
+
+ [format.functions] Add "std::move" around "out" (#5069)
+
+ This fixes a misapplication of the resolution of LWG 3539.
+
+commit 0d0ec1a1393b3baae564234007c94b80da9bab48
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue Nov 23 18:15:55 2021 +0100
+
+ [func.wrap.{func.general, move.class}] Remove 'first-class object' (#5067)
+
+ The term is undefined and does not improve the specification.
+
+commit d27c3b388befadc4c35aac1d12f0ba8581f14a5f
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Fri Nov 12 14:29:00 2021 +0000
+
+ [spanstream.ctor] Fix base class name in effects
+
+commit c1935504da840995b1bb60eba536cb12bca5ae71
+Author: timsong-cpp <rs2740@gmail.com>
+Date: Tue Nov 23 11:51:37 2021 -0600
+
+ [basic.start.main] Remove redundant phrase (#5083)
+
+commit 70eb0406596b4f4e3d97ed50b3fd6d93b3032d18
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon Oct 25 23:57:58 2021 +0200
+
+ [basic.start.main] Avoid implementation guidance in a note
+
+commit ac8d6611a739c64eda4a7062f2cb83f770cd8a53
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon Oct 25 23:58:08 2021 +0200
+
+ [dcl.link] Avoid implementation guidance in a note
+
+commit 2ad67aefe350017c4e9403ba2015af683813787f
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sat Nov 6 22:08:47 2021 +0100
+
+ [lex] Remove Unicode character name abbreviations
+
+ They are not part of the character name or alias.
+ The presentation in ISO 10646 is misleading, though.
+
+commit 29c89b16e92cd03a76eb2a19866e683a7bb7ac80
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sat Nov 6 22:15:05 2021 +0100
+
+ [lex] Rename U+0007 BELL to ALERT
+
+ The former is ambiguous with U+1F514 BELL.
+ The ALERT alias is defined in UCD NameAliases.txt.
+
+commit 408623b7d8f0efd77403d1d0142d9bd59d1cfe55
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sat Dec 4 11:19:54 2021 +0100
+
+ [associative.reqmts.general] Fix typo: 'kx', not 'rx' (#5136)
+
+commit f03473cd1e32691c105260e65dd534960cf9db21
+Author: Neven Sajko <nsajko@gmail.com>
+Date: Sun Dec 5 21:19:00 2021 +0100
+
+ [over.sub] Fix typo: change oeprator to operator (#5140)
+
+commit c69a35501174f5ab5d3f13f12186cc9b1fcd40dd
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue Dec 14 11:24:04 2021 +0100
+
+ [range.access] Fix cross-references for 'array' (#5147)
+
+ Also introduce a label 'term.array.type' in [dcl.array].
+
+commit 7a09dddd036359a10cf10b8e7d80c8edd8c76817
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Dec 16 19:39:18 2021 +0100
+
+ [basic.fundamental] Excise normative requirements on std::numeric_limits (#5105)
+
+commit c2617432eac3313abd2134a26e2d8a1d925dfd15
+Author: Casey Carter <Casey@Carter.net>
+Date: Thu Dec 16 23:53:17 2021 -0800
+
+ [depr.default.allocator] Index allocator::is_always_equal here (#5152)
+
+ LWG3170 deprecated `allocator::is_always_equal`. We moved it to Annex D, but left the index entry behind.
+
+commit 28effaea15ef697f5a64fba47b9c095c9fbfe82a
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sun Dec 19 22:16:18 2021 +0100
+
+ [ptr.align,re.regiter.incr] Replace 'compiler' with 'implementation'
+
+commit 575b9a99062de34cc44bc45aeb459f32aa12b98f
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sun Dec 19 22:19:19 2021 +0100
+
+ [smartptr.adapt] Emphasize that casting might not always be viable
+
+commit 9ba8e0329a0f5db15544c31c514ff44e0003f08f
+Author: frederick-vs-ja <de34@live.cn>
+Date: Tue Jan 11 23:29:26 2022 +0800
+
+ [pairs.pair] Add missing _v for type traits (#5196)
+
+commit dae6769d9767e2e47f2fe451d9c796dd07d0ae29
+Author: zhihaoy <43971430+zhihaoy@users.noreply.github.com>
+Date: Thu Jan 13 14:03:25 2022 -0800
+
+ [func.memfn] Correct target object by fixing typo (#5202)
+
+commit 5f830f97829965cf791dfe6eef6b84d6283712be
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed Nov 24 22:04:55 2021 +0100
+
+ [lib] Add 'namespace std' wrappings around class definitions
+
+ Those were missing in a few places, notably [rand].
+
+ Also add an automated check.
+
+commit 1031a409dfacb84b9871b16502c73e15249160eb
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri Nov 19 23:02:19 2021 +0100
+
+ [chrono.syn] Use nested namespace definitions for clarity
+
+commit dad631ac4bd30e7ab6de5a888f77ed2b5b44c17d
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sat Nov 6 09:39:55 2021 +0100
+
+ [except.throw,except.handle] Move lvalue specification for copies
+
+commit c6e5eea4f11efec62a4718acd4eb17fb99fd4899
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon Oct 25 23:41:31 2021 +0200
+
+ [expr.prim.req.general] Change requirement-seq to right-recursive
+
+ consistent with the specification of other -seq non-terminals.
+
+commit 872fce6effc603735c9717981807eb6bb8b4f838
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sat Dec 4 11:33:32 2021 +0100
+
+ [associative.reqmts.general] Fix confusing local use of 'r'
+
+commit 3d1bf58b74860fc1e86cd1cf536b7022b90d688d
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri Jan 7 20:26:15 2022 +0100
+
+ [temp.res.general] Clarify binding of names
+
+commit 4123264d22c7617d828083c9ad954b5541934621
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon Oct 25 18:15:14 2021 +0200
+
+ [temp.constr.atomic] Fix phrasing in note
+
+commit 26ce304780d79bba03a791b2f4299f083f021238
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue Dec 14 09:25:41 2021 +0100
+
+ [dcl.meaning.general] Clarify correspondence for block-scope friends
+
+commit 3c19e315dbb05a2c22b8f5b075af39a7572cdaa1
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Dec 23 11:18:17 2021 +0100
+
+ [meta.rel] Avoid undefined term 'void types'
+
+commit 90d178d022c7d597629853ebc70262489e49d5e9
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri Jan 14 19:46:15 2022 +0100
+
+ [class.default.ctor] Fix implicit invocation of default constructor (#4026)
+
+ Initialization is fully specified in [dcl.init],
+ so turn the list of default-initialization cases
+ into a note and shorten it appropriately.
+
+commit e1bfc25c56c7ab303241f980fa00d7ae402e1f5c
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon Jul 5 23:51:41 2021 +0200
+
+ [stmt.return,class.{ctor,dtor}] Clarify no return operand
+
+ Highlight that constructors and destructors do not have a
+ return type and thus a return statement within a constructor
+ or destructor cannot have an operand.
+
+commit b345505b88b376d547220254fd858840efbfb937
+Author: Chuanqi Xu <yedeng.yd@linux.alibaba.com>
+Date: Fri Jan 14 10:10:11 2022 +0800
+
+ [temp.param] Delete outdated wording at p15
+
+ The wording at [temp.param]/15 says:
+ > A template-parameter shall not be given default arguments by two
+ > different declarations if one is reachable from the other.
+
+ But it is conflicted with [basic.def.odr]/13:
+ > There can be more than one definition of a
+ > ...
+ > default template argument
+ > ...
+ > in a program provided that each definition appears in a different
+ > translation unit and the definitions satisfy the [same-meaning
+ > criteria of the ODR].
+
+ [temp.param] should be deleted otherwise we couldn't modularize a real
+ project.
+
+commit fc9818bcdaa08f65c8d99f7df70b418810c36893
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sat Jan 15 09:43:55 2022 +0100
+
+ [util.smartptr.atomic] Add cross-reference to <memory> header (#5207)
+
+commit 5c59ede65b362afb418bda3cf82123ae2ca2553c
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Dec 23 11:36:39 2021 +0100
+
+ [locale.ctype.virtuals] Clarify do_widen parameter
+
+commit cec2d218209abf2979a3c7fabc9970d8677b9e63
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Dec 23 12:53:01 2021 +0100
+
+ [diff.stmt] Properly refer to function return types
+
+ Also annotate the 'void' and 'int' keywords.
+
+commit ba9124e62ea85c922d501dfc52bc4d44c85933bd
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Fri Jan 21 15:57:58 2022 +0000
+
+ [util.smartptr.atomic.general] Fix cross-reference to shared_ptr (#5222)
+
+commit 3cb2ee9d67360612e6361aa26d1805c8ed30c6e6
+Author: Chuanqi Xu <68680648+ChuanqiXu9@users.noreply.github.com>
+Date: Sat Jan 22 17:43:22 2022 +0800
+
+ [temp.dep.general] add trailing 'or' (#5186)
+
+commit 4e2dbd25fa137f12c8fa6b960bc2db45be994414
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sat Jan 22 13:38:10 2022 +0100
+
+ [class.free] Move into [class.mem]
+
+ The class-specific allocation and deallocation functions,
+ whose declaration properties are specified in this section,
+ are class member functions.
+
+commit 7987ef93488842bbdbbd6e4de996f463939fe0e8
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sat Jan 22 13:45:23 2022 +0100
+
+ [class.free] Change subclause heading and add indexing
+
+ Rename the heading to "Allocation and deallocation functions",
+ which is more appropriate for the contents of the subclause.
+
+commit 07db0b3182495339b00221bba41549913e0a6a0e
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sat Jan 22 14:35:11 2022 +0100
+
+ [stacktrace] Move into [diagnostics]
+
+commit 0df02c99d04dd0e0d29ea520904ea64f69ea6c36
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Jan 20 19:42:09 2022 +0100
+
+ [class.mem.general] Add cross-reference for 'layout-compatible type'
+
+commit 2e5976f894d821e442a6f98c3e235381f8067570
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Jan 20 19:36:15 2022 +0100
+
+ [stmt.return] Clarify flowing off the end of a function
+
+commit 88541f7ad5de85389adb0e88f295091d29f00030
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Tue Jan 25 23:12:55 2022 +0100
+
+ [range.req.general] Remove incorrect normative duplication for 'view' (#5235)
+
+commit 0539c5e2cdf7605c5704eb2b63916b6c5c3b9539
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Feb 18 13:42:57 2021 +0100
+
+ [macros,structure.specifications] Add 'Result' element
+
+commit 408a22b1b58207de4af28d59afd20156e715e35f
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Jan 7 23:48:43 2021 +0100
+
+ [re.req] Replace requirements table with \itemdescr
+
+commit 93ff092d1cd2b335f372b9546365b3d495caf2d8
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sun Nov 14 20:05:03 2021 +0100
+
+ [container.requirements] Replace requirements tables with \itemdescr
+
+ and adjust cross-references to container requirements tables
+ throughout the standard library.
+
+commit 4b1a735f393aa5c864d0a5aba45514aec63f5a90
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sun Jun 27 11:26:39 2021 +0200
+
+ [container.requirements] Omit redundant specification
+
+ where "Effects: Equivalent to" wording is used.
+
+commit d37470de0392f032d96c85610c947918269532a9
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sun Feb 20 00:09:56 2022 +0100
+
+ [lex.name] Rephrase note to avoid upper/lower-case
+
+commit efd0cab6f2d11f29f205c15672108f6e20de6010
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sun Feb 20 14:28:36 2022 +0100
+
+ [lib] Add missing \pnum before descriptive elements
+
+ Also fix the ineffective check script by rewriting the
+ check in straightforward awk.
+
+commit ff92c80b70b9cd887512f96e5d5525c20550d12f
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sun Feb 6 09:52:01 2022 +0100
+
+ [iterator.concept.winc] Remove duplicate paragraph
+
+ This fixes a bad merge between P2393R1 Cleaning up integer-class types
+ and P2321R2 zip.
+
+commit a4dfa1f0c46152d3a3399bc32a60fcf11edd4a5d
+Author: Chuanqi Xu <68680648+ChuanqiXu9@users.noreply.github.com>
+Date: Mon Feb 21 07:18:41 2022 +0800
+
+ [module.interface] Add adjective 'exported' (#5290)
+
+ It was clear in context that "the declaration" is exported, but
+ it is easier to understand if we restate "an exported declaration".
+
+commit 90ef396f088a4e1730a3f73f3db44d9ad8b872b7
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Tue Feb 1 13:58:38 2022 +0000
+
+ [fs.class.directory.iterator.general] Fix grammar
+
+commit 1155c4a361c446eee4602b7fd2e82eba7a4f8c4f
+Author: languagelawyer <language.lawyer@gmail.com>
+Date: Sat Jan 22 23:27:49 2022 +0300
+
+ [temp.res] Move a note outside itemize environment
+
+commit 44c79f59de6c4ea179bacc698272d713e696b117
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sat Jan 29 09:37:59 2022 +0100
+
+ [derivation] Remove 'basic integral type' from footnote
+
+ Also switch footnote to note.
+
+commit 785b0a84e7b0f8108b5140f33494ceff3d0bd282
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Dec 23 11:40:48 2021 +0100
+
+ [diff.expr] Replace 'will' with present tense
+
+ Also annotate the 'void' keyword.
+
+commit 97a72e1c4f1616f2163d34deafea010d68099a7c
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sun Dec 5 21:22:48 2021 +0100
+
+ [temp.local] Fix type-name interpretation of injected-class-name
+
+commit a8e63922a5f049ab2c58a33117913688b8dc096a
+Author: A. Jiang <de34@live.cn>
+Date: Mon Feb 21 20:27:01 2022 +0800
+
+ [container.gen.reqmts] Replace "Value:" with "Returns:" (#5256)
+
+commit d267cde4fcc2c13ef87170d68f94f1ae6e499c23
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon Feb 21 13:51:45 2022 +0100
+
+ [over.best.ics] Clarify phrasing around user-defined conversion sequence (#5086)
+
+ This replaces the use of "with" that is popular in mathematical writing
+ with a more common construction.
+
+commit 7424b45d8470b8765cdf3b25bcfd9a9a89c0c936
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon Jan 3 22:24:23 2022 +0100
+
+ [expr] Cleanup for 'discarded-value expression'
+
+commit b5ce71b34217f9d974e96cc366984cbd5f4b71e6
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri Dec 17 20:31:57 2021 +0100
+
+ [atomics] Harmonize references to atomics operations tables
+
+commit ef78018c8d61d79dc9cddc5f4b2d00a7929964fa
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri Jan 21 23:01:25 2022 +0100
+
+ [std] Replace hyphen with period in labels
+
+ and add a check.
+
+commit 58ea575dd9b4a410dcf457b3357bef4a720e1608
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Jan 13 23:21:05 2022 +0100
+
+ [function.objects,ranges] Introduce labels for call wrappers
+
+ In particular, 'term.perfect.forwarding.call.wrapper'
+ and 'term.simple.call.wrapper', and refer to them.
+
+commit 0c53beacef2289e4cc4fabbdff99eb3b6c7ae4ad
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon Jul 5 23:16:20 2021 +0200
+
+ [unique.ptr.single] Rephrase destruction
+
+commit 03b9040814ecd548f2de18668df0655ef7b37efb
+Author: S. B. Tam <cpplearner@outlook.com>
+Date: Tue Feb 22 09:39:37 2022 +0800
+
+ [version.syn] Remove mention of nonexistent header `<priority_queue>`
+
+commit 97430e8f867f5b97f79c8064c32dd1bde117198a
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon Nov 22 22:20:16 2021 +0100
+
+ [allocator.adaptor.members] Fix select_on_container_copy_construction
+
+ The description was confusing objects and types.
+
+commit 2cd31adb2033b4ae82339ef270bc058128cbd199
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed Feb 23 22:38:13 2022 +0100
+
+ [bit] Move into [utilities]
+
+commit e3532fd233355f93558f6a53d14b72e16a1f1ed2
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed Feb 23 22:44:52 2022 +0100
+
+ [memory] Create new clause
+
+ and move [memory], [smartptr], [mem.res], and [allocator.adaptor]
+ from [utilities] into the new clause.
+
+commit cb7b98d46c4603ccc485fe826fb4363cb2c039bf
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed Feb 23 22:48:10 2022 +0100
+
+ [comparisons.three.way,func.search] Add namespace around class definition
+
+commit 1daeb8e44b659c5cdf7133df68def1264c8b5774
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed Feb 23 22:54:01 2022 +0100
+
+ Move [string.view] to before [string.classes]
+
+commit 724e83e4d0cd82737952711d31505872188269ab
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed Feb 23 23:01:35 2022 +0100
+
+ [meta] Create new clause
+
+ and move [intseq], [meta], and [ratio] from [utilities] into the
+ new clause.
+
+commit af8334b94be2df5bf009ef7381460f56e6224c44
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed Feb 23 23:06:45 2022 +0100
+
+ [meta] Adjust cross-references
+
+commit d74c2170a9f4c928519461d7742293af2d141852
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Wed Feb 23 23:19:51 2022 +0100
+
+ Move [atomics] into [thread]
+
+ Rename [thread] to 'Concurrency support library'.
+
+commit 888602381e6c4e5fc886a7e575a95c905998b487
+Author: A. Jiang <de34@live.cn>
+Date: Thu Feb 24 11:35:19 2022 +0800
+
+ [headers] List <expected>
+
+commit aa2c64589cf2a784e9c551a2a54df59b880613d3
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Feb 24 15:09:08 2022 +0100
+
+ [thread] Rename to 'Concurrency support library'
+
+ Missed update with commit d74c2170a9f4c928519461d7742293af2d141852.
+
+commit 000d4c091a244b3bf81470c6c6a4f2f35c3ec602
+Author: hewillk <67143766+hewillk@users.noreply.github.com>
+Date: Fri Feb 25 01:14:48 2022 +0800
+
+ [range.chunk.outer.value] Add missing private specifier
+
+commit 2901f3f6c00060e6c0a368efd28fd50ba07350f1
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri Feb 25 23:38:49 2022 +0100
+
+ [diff.cpp20.library] Add subclause, highlighting new headers
+
+commit 1c88b6bdafb2eb128e7da05815f3b30fa52d3710
+Author: hewillk <67143766+hewillk@users.noreply.github.com>
+Date: Sun Feb 27 21:23:40 2022 +0800
+
+ [range.slide.overview] Fix bad quotation marks for string-literal (#5326)
+
+commit dd346dcbd723ae27d6a2c2a74aad8a17a62ea687
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sun Mar 6 00:18:57 2022 +0100
+
+ [expr.const] Add cross-reference for construct_at
+
+commit 8679960561e6f18ca533915626cdd5ecd349bcf4
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sun Feb 27 22:22:30 2022 +0100
+
+ [allocator.requirements.general] Replace table for descriptive variables
+
+commit 0befc0e9f7e1df2451fa115b9ff12dbd8d384c5d
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Sun Feb 27 23:59:42 2022 +0100
+
+ [allocator.requirements.general] Dismantle requirements table
+
+commit 4e4aa46276d1542b2f0ff66ebd0f66df8ba0d785
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon Feb 28 00:17:47 2022 +0100
+
+ [lib] Fix cross-references to replaced table cpp17.allocator
+
+commit 2d8e11333fe4e188a940bc5c4e1a2f33b139ee3b
+Author: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
+Date: Mon Feb 21 14:49:31 2022 -0400
+
+ [array.overview] Don't mention swap as an exception
+
+ The container requirements already describe this behavior,
+ so from the POV of this subclause, there's no exception.
+
+commit 65e74383deb8bcc0cab8e813b6360e9b1e8f6b10
+Author: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
+Date: Mon Feb 21 14:52:15 2022 -0400
+
+ [array.overview] Mention condition of exception
+
diff --git a/papers/n4911.md b/papers/n4911.md
new file mode 100644
index 0000000000..35188804ab
--- /dev/null
+++ b/papers/n4911.md
@@ -0,0 +1,892 @@
+# N4911 Editors' Report -- Programming Languages -- C++
+
+Date: 2022-03-17
+
+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
+
+ * [N4910](http://open-std.org/jtc1/sc22/wg21/docs/papers/2022/n4910.pdf) is the
+ current working draft for C++23. It replaces
+ [N4901](http://open-std.org/jtc1/sc22/wg21/docs/papers/2021/n4901.pdf).
+ * N4911 is this Editors' Report.
+
+## Motions incorporated into working draft
+
+### Core working group polls
+
+CWG poll 1: Accept as Defect Reports all issues _except issue 2502_ in
+[P2533R0](http://open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2533r0.html)
+(Core Language Working Group "ready" Issues for the February, 2022 meeting) and
+apply the proposed resolutions for all of the issues to the C++ working paper.
+
+CWG poll 2: Apply the changes in
+[P2173R1](http://open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2173r1.pdf)
+(Attributes on Lambda-Expressions) to the C++ Working Paper.
+
+CWG poll 3: Apply the changes in
+[P2493R0](http://open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2493r0.html)
+(Missing feature test macros for C++20 core papers) to the C++ Working Paper.
+
+### Library working group polls
+
+LWG poll 1: Apply the changes for all Tentatively Ready issues in
+[P2531R0](http://open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2531r0.html) (C++
+Standard Library Issues to be moved in Virtual Plenary, Feb. 2022) to the C++
+working paper.
+
+LWG poll 2: Apply the changes in
+[P0323R12](http://open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0323r12.html)
+(`std::expected`) to the C++ working paper.
+
+LWG poll 3: Apply the changes in
+[P0533R9](http://open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0533r9.pdf)
+(constexpr for `