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 @@ + + + + + +N4911 + + +

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 +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 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.

+ +

Library working group polls

+ +

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.

+ +

Editorial changes

+ +

Notes on motions

+ + + +

Clause reorganization

+ +

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.

+ + + +

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.

+ +

Requirements tables

+ +

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.

+ +

Term labels

+ +

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.

+ +

Minor editorial changes

+ +

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 `` and ``) to the C++ working paper. + +LWG poll 4: Apply the changes in +[P0627R6](http://open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0627r6.pdf) +(Function to mark unreachable code) to the C++ working paper. + +LWG poll 5: Apply the changes in +[P1206R7](http://open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1206r7.pdf) +(ranges::to: A function to convert any range to a container) to the C++ working +paper. + +LWG poll 6: Apply the changes in +[P1413R3](http://open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1413r3.pdf) +(Deprecate `std::aligned_storage` and `std::aligned_union`) to the C++ working +paper. + +LWG poll 7: Apply the changes in +[P2255R2](http://open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2255r2.html) (A +type trait to detect reference binding to temporary) to the C++ working paper. + +LWG poll 8: Apply the changes in +[P2273R3](http://open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2273r3.pdf) +(Making `std::unique_ptr` constexpr) to the C++ working paper. + +LWG poll 9: Apply the changes in +[P2387R3](http://open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2387r3.html) +(Pipe support for user-defined range adaptors) to the C++ working paper. + +LWG poll 10: Apply the changes in +[P2440R1](http://open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2440r1.html) +(`ranges::iota`, `ranges::shift_left` and `ranges::shift_right`) to the C++ +working paper. + +LWG poll 11: Apply the changes in +[P2441R2](http://open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2441r2.html) +(`views::join_with`) to the C++ working paper. + +LWG poll 12: Apply the changes in +[P2442R1](http://open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2442r1.html) +(Windowing range adaptors: `views::chunk` and `views::slide`) to the C++ working +paper. + +LWG poll 13: Apply the changes in +[P2443R1](http://open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2443r1.html) +(`views::chunk_by`) to the C++ working paper. + +## Editorial changes + +### Notes on motions + +* **Poll CWG-2:** The wording was adjusted to integrate with the new wording + from issue + [CWG-2509](http://open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2533r0.html#2509) + to use the new term _lambda-specifier-seq_ instead of the original + _decl-specifier-seq_. + +* **Poll LWG-1:** Issue + [LWG-3616](http://open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2531r0.html#3616) + was skipped, since it had already been [applied + editorially](https://github.com/cplusplus/draft/commit/8753efabbbfec8371a82de1af60337fa6a6b6dc2). + +* **Poll LWG-8:** The wording was integrated with the resolution of + [LWG-3632](http://open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2531r0.html#3632). + +### Clause reorganization + +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 parts of ``, 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. + +### Requirements tables + +We have begun replacing the large requirements tables in the library with more +conventional paragraphs, as described in editorial paper +[P2416R2](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2416r2.pdf). +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. + +### Term labels + +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. + +### Minor editorial changes + +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](https://github.com/cplusplus/draft/compare/n4901...n4910). + + commit 04e0ea7074c9b0d0ca939821ce0f575c589df6b7 + Author: Jens Maurer + Date: Thu Oct 21 23:52:55 2021 +0200 + + [pairs.pair] Use T1/T2, not first_type/second_type + + commit ed6e1b5da5d13449cf27c878c60e90892289f98a + Author: Jens Maurer + 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 + 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 + 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 + Date: Sun Jul 4 23:30:42 2021 +0200 + + [contents] Add special lookup treatment for swap + + commit 280684c7824b6b7f62c003b909ccf3703d82681b + Author: Johel Ernesto Guerrero Peña + 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 + 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 + 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 + 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 + Date: Sat Nov 13 10:01:36 2021 +0100 + + [dcl.typedef] Add explanation for lookup failure in example + + commit c63e5e836e8dbe0ae6c7ebc1b2a1b1534d37a220 + Author: Jens Maurer + Date: Wed Nov 10 23:40:48 2021 +0100 + + [input.output] Fix headings of 'assign and swap' subclauses + + commit d2699e5de0c10085df309074d2dfbc57d5bc86bb + Author: Jens Maurer + 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 + 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 + 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 + 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 + Date: Thu Oct 21 22:11:07 2021 +0200 + + [c.mb.wcs] mbrtoc8 stores code units, not characters + + commit ba4bb3ee56b94b63d0d1e5914a136a04b1620052 + Author: mordante + 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 + 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 + Date: Fri Nov 12 14:29:00 2021 +0000 + + [spanstream.ctor] Fix base class name in effects + + commit c1935504da840995b1bb60eba536cb12bca5ae71 + Author: timsong-cpp + Date: Tue Nov 23 11:51:37 2021 -0600 + + [basic.start.main] Remove redundant phrase (#5083) + + commit 70eb0406596b4f4e3d97ed50b3fd6d93b3032d18 + Author: Jens Maurer + Date: Mon Oct 25 23:57:58 2021 +0200 + + [basic.start.main] Avoid implementation guidance in a note + + commit ac8d6611a739c64eda4a7062f2cb83f770cd8a53 + Author: Jens Maurer + Date: Mon Oct 25 23:58:08 2021 +0200 + + [dcl.link] Avoid implementation guidance in a note + + commit 2ad67aefe350017c4e9403ba2015af683813787f + Author: Jens Maurer + 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 + 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 + Date: Sat Dec 4 11:19:54 2021 +0100 + + [associative.reqmts.general] Fix typo: 'kx', not 'rx' (#5136) + + commit f03473cd1e32691c105260e65dd534960cf9db21 + Author: Neven Sajko + Date: Sun Dec 5 21:19:00 2021 +0100 + + [over.sub] Fix typo: change oeprator to operator (#5140) + + commit c69a35501174f5ab5d3f13f12186cc9b1fcd40dd + Author: Jens Maurer + 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 + Date: Thu Dec 16 19:39:18 2021 +0100 + + [basic.fundamental] Excise normative requirements on std::numeric_limits (#5105) + + commit c2617432eac3313abd2134a26e2d8a1d925dfd15 + Author: Casey Carter + 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 + Date: Sun Dec 19 22:16:18 2021 +0100 + + [ptr.align,re.regiter.incr] Replace 'compiler' with 'implementation' + + commit 575b9a99062de34cc44bc45aeb459f32aa12b98f + Author: Jens Maurer + 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 + 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 + 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 + Date: Fri Nov 19 23:02:19 2021 +0100 + + [chrono.syn] Use nested namespace definitions for clarity + + commit dad631ac4bd30e7ab6de5a888f77ed2b5b44c17d + Author: Jens Maurer + Date: Sat Nov 6 09:39:55 2021 +0100 + + [except.throw,except.handle] Move lvalue specification for copies + + commit c6e5eea4f11efec62a4718acd4eb17fb99fd4899 + Author: Jens Maurer + 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 + Date: Sat Dec 4 11:33:32 2021 +0100 + + [associative.reqmts.general] Fix confusing local use of 'r' + + commit 3d1bf58b74860fc1e86cd1cf536b7022b90d688d + Author: Jens Maurer + Date: Fri Jan 7 20:26:15 2022 +0100 + + [temp.res.general] Clarify binding of names + + commit 4123264d22c7617d828083c9ad954b5541934621 + Author: Jens Maurer + Date: Mon Oct 25 18:15:14 2021 +0200 + + [temp.constr.atomic] Fix phrasing in note + + commit 26ce304780d79bba03a791b2f4299f083f021238 + Author: Jens Maurer + Date: Tue Dec 14 09:25:41 2021 +0100 + + [dcl.meaning.general] Clarify correspondence for block-scope friends + + commit 3c19e315dbb05a2c22b8f5b075af39a7572cdaa1 + Author: Jens Maurer + Date: Thu Dec 23 11:18:17 2021 +0100 + + [meta.rel] Avoid undefined term 'void types' + + commit 90d178d022c7d597629853ebc70262489e49d5e9 + Author: Jens Maurer + 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 + 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 + 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 + Date: Sat Jan 15 09:43:55 2022 +0100 + + [util.smartptr.atomic] Add cross-reference to header (#5207) + + commit 5c59ede65b362afb418bda3cf82123ae2ca2553c + Author: Jens Maurer + Date: Thu Dec 23 11:36:39 2021 +0100 + + [locale.ctype.virtuals] Clarify do_widen parameter + + commit cec2d218209abf2979a3c7fabc9970d8677b9e63 + Author: Jens Maurer + 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 + 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 + 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 + 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 + Date: Sat Jan 22 14:35:11 2022 +0100 + + [stacktrace] Move into [diagnostics] + + commit 0df02c99d04dd0e0d29ea520904ea64f69ea6c36 + Author: Jens Maurer + Date: Thu Jan 20 19:42:09 2022 +0100 + + [class.mem.general] Add cross-reference for 'layout-compatible type' + + commit 2e5976f894d821e442a6f98c3e235381f8067570 + Author: Jens Maurer + Date: Thu Jan 20 19:36:15 2022 +0100 + + [stmt.return] Clarify flowing off the end of a function + + commit 88541f7ad5de85389adb0e88f295091d29f00030 + Author: Jens Maurer + Date: Tue Jan 25 23:12:55 2022 +0100 + + [range.req.general] Remove incorrect normative duplication for 'view' (#5235) + + commit 0539c5e2cdf7605c5704eb2b63916b6c5c3b9539 + Author: Jens Maurer + Date: Thu Feb 18 13:42:57 2021 +0100 + + [macros,structure.specifications] Add 'Result' element + + commit 408a22b1b58207de4af28d59afd20156e715e35f + Author: Jens Maurer + Date: Thu Jan 7 23:48:43 2021 +0100 + + [re.req] Replace requirements table with \itemdescr + + commit 93ff092d1cd2b335f372b9546365b3d495caf2d8 + Author: Jens Maurer + 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 + 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 + Date: Sun Feb 20 00:09:56 2022 +0100 + + [lex.name] Rephrase note to avoid upper/lower-case + + commit efd0cab6f2d11f29f205c15672108f6e20de6010 + Author: Jens Maurer + 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 + 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 + Date: Tue Feb 1 13:58:38 2022 +0000 + + [fs.class.directory.iterator.general] Fix grammar + + commit 1155c4a361c446eee4602b7fd2e82eba7a4f8c4f + Author: languagelawyer + Date: Sat Jan 22 23:27:49 2022 +0300 + + [temp.res] Move a note outside itemize environment + + commit 44c79f59de6c4ea179bacc698272d713e696b117 + Author: Jens Maurer + 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 + 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 + Date: Sun Dec 5 21:22:48 2021 +0100 + + [temp.local] Fix type-name interpretation of injected-class-name + + commit a8e63922a5f049ab2c58a33117913688b8dc096a + Author: A. Jiang + Date: Mon Feb 21 20:27:01 2022 +0800 + + [container.gen.reqmts] Replace "Value:" with "Returns:" (#5256) + + commit d267cde4fcc2c13ef87170d68f94f1ae6e499c23 + Author: Jens Maurer + 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 + Date: Mon Jan 3 22:24:23 2022 +0100 + + [expr] Cleanup for 'discarded-value expression' + + commit b5ce71b34217f9d974e96cc366984cbd5f4b71e6 + Author: Jens Maurer + Date: Fri Dec 17 20:31:57 2021 +0100 + + [atomics] Harmonize references to atomics operations tables + + commit ef78018c8d61d79dc9cddc5f4b2d00a7929964fa + Author: Jens Maurer + 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 + 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 + Date: Mon Jul 5 23:16:20 2021 +0200 + + [unique.ptr.single] Rephrase destruction + + commit 03b9040814ecd548f2de18668df0655ef7b37efb + Author: S. B. Tam + Date: Tue Feb 22 09:39:37 2022 +0800 + + [version.syn] Remove mention of nonexistent header `` + + commit 97430e8f867f5b97f79c8064c32dd1bde117198a + Author: Jens Maurer + 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 + Date: Wed Feb 23 22:38:13 2022 +0100 + + [bit] Move into [utilities] + + commit e3532fd233355f93558f6a53d14b72e16a1f1ed2 + Author: Jens Maurer + 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 + Date: Wed Feb 23 22:48:10 2022 +0100 + + [comparisons.three.way,func.search] Add namespace around class definition + + commit 1daeb8e44b659c5cdf7133df68def1264c8b5774 + Author: Jens Maurer + Date: Wed Feb 23 22:54:01 2022 +0100 + + Move [string.view] to before [string.classes] + + commit 724e83e4d0cd82737952711d31505872188269ab + Author: Jens Maurer + 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 + Date: Wed Feb 23 23:06:45 2022 +0100 + + [meta] Adjust cross-references + + commit d74c2170a9f4c928519461d7742293af2d141852 + Author: Jens Maurer + Date: Wed Feb 23 23:19:51 2022 +0100 + + Move [atomics] into [thread] + + Rename [thread] to 'Concurrency support library'. + + commit 888602381e6c4e5fc886a7e575a95c905998b487 + Author: A. Jiang + Date: Thu Feb 24 11:35:19 2022 +0800 + + [headers] List + + commit aa2c64589cf2a784e9c551a2a54df59b880613d3 + Author: Jens Maurer + 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 + 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 + Date: Sun Mar 6 00:18:57 2022 +0100 + + [expr.const] Add cross-reference for construct_at + + commit 8679960561e6f18ca533915626cdd5ecd349bcf4 + Author: Jens Maurer + Date: Sun Feb 27 22:22:30 2022 +0100 + + [allocator.requirements.general] Replace table for descriptive variables + + commit 0befc0e9f7e1df2451fa115b9ff12dbd8d384c5d + Author: Jens Maurer + Date: Sun Feb 27 23:59:42 2022 +0100 + + [allocator.requirements.general] Dismantle requirements table + + commit 4e4aa46276d1542b2f0ff66ebd0f66df8ba0d785 + Author: Jens Maurer + 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 + 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 + Date: Mon Feb 21 14:52:15 2022 -0400 + + [array.overview] Mention condition of exception diff --git a/papers/wd-index.md b/papers/wd-index.md index 675cf0c61b..5b3d4dee1e 100644 --- a/papers/wd-index.md +++ b/papers/wd-index.md @@ -38,5 +38,6 @@ * [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 - * [N4901](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/n4901.pdf) 2021-03 C++ Working Draft + * [N4892](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/n4892.pdf) 2021-06 C++ Working Draft + * [N4901](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/n4901.pdf) 2021-10 C++ Working Draft + * [N4910](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/n4910.pdf) 2022-03 C++ Working Draft diff --git a/source/config.tex b/source/config.tex index 556faf904a..5f56bc933e 100644 --- a/source/config.tex +++ b/source/config.tex @@ -1,7 +1,7 @@ %!TEX root = std.tex %%-------------------------------------------------- %% Version numbers -\newcommand{\docno}{Dxxxx} +\newcommand{\docno}{N4910} \newcommand{\prevdocno}{N4901} \newcommand{\cppver}{202002L}