[libc++] Replace 'tags' in CSV status pages by inline notes (#105581)

This patch replaces 'tags' in the CSV status pages by inline notes
that optionally describe more details about the paper/LWG issue.

Tags were not really useful anymore because we have a vastly superior
tagging system via Github issues, and keeping the tags up-to-date
between CSV files and Github is going to be really challenging.

This patch also adds support for encoding custom notes in the CSV
files via Github issues. To encode a note in the CSV file, the
body (initial description) of a Github issue can be edited to contain
the following markers:

    BEGIN-RST-NOTES
    text that will be added as a note in the RST
    END-RST-NOTES

Amongst other things, this solves the problem of conveying that a
paper has been implemented as a DR, and it gives a unified way to
add notes to the status pages from Github.
This commit is contained in:
Louis Dionne 2024-08-28 13:42:41 -04:00 committed by GitHub
parent 4f15039cf2
commit c2cac69d08
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 471 additions and 553 deletions

View File

@ -17,13 +17,6 @@
font-style: italic;
}
.complete { background-color: #99FF99; }
.chrono { background-color: #D8BFD8; }
.format { background-color: #FFE4B5; }
.ranges { background-color: #7FFFD4; }
.spaceship { background-color: #B0E0E6; }
.fc { background-color: #8EAF63; white-space:nowrap; }
.concurrency { background-color: #909090; white-space:nowrap; }
.dr { background-color: #FFFF99; }
</style>
.. role:: notstarted
@ -40,21 +33,5 @@
.. |Partial| replace:: :partial:`Partial`
.. |Complete| replace:: :complete:`Complete`
.. role:: chrono
.. role:: format
.. role:: ranges
.. role:: spaceship
.. role:: fc
.. role:: concurrency
.. role:: dr
.. |chrono| replace:: :chrono:`chrono`
.. |format| replace:: :format:`format`
.. |ranges| replace:: :ranges:`ranges`
.. |spaceship| replace:: :spaceship:`spaceship`
.. |flat_containers| replace:: :fc:`flat containers`
.. |concurrency TS| replace:: :concurrency:`concurrency TS`
.. |DR| replace:: :dr:`Defect Report`
.. |sect| unicode:: U+00A7
.. |hellip| unicode:: U+2026

View File

@ -26,8 +26,6 @@ The groups that have contributed papers:
.. note:: "Nothing to do" means that no library changes were needed to implement this change.
.. _paper-status-cxx17:
Paper Status
====================================
@ -36,23 +34,6 @@ Paper Status
:header-rows: 1
:widths: auto
.. note::
.. [#note-N4259] N4259: ``std::uncaught_exception`` is deprecated since LLVM 20.0.
.. [#note-P0067R5] P0067R5: ``std::(to|from)_chars`` for integrals has been available since version 7.0. ``std::to_chars`` for ``float`` and ``double`` since version 14.0 ``std::to_chars`` for ``long double`` uses the implementation for ``double``.
.. [#note-P0226] P0226: Progress is tracked `here <https://github.com/llvm/llvm-project/issues/99939>`_.
.. [#note-P0607] P0607: The parts of P0607 that are not done are the ``<regex>`` bits.
.. [#note-P0154] P0154: The required macros are only implemented as of clang 19.
.. [#note-P0452] P0452: The changes to ``std::transform_inclusive_scan`` and ``std::transform_exclusive_scan`` have not yet been implemented.
.. [#note-P0156] P0156: That paper was pulled out of the draft at the 2017-01 meeting in Kona.
.. [#note-P0181] P0181: That paper was pulled out of the draft at the 2017-01 meeting in Kona.
.. [#note-P0067R3] P0067R3: That paper was resolved by `P0067R5 <https://wg21.link/P0067R5>`__.
.. [#note-LWG2587] LWG2587: That LWG issue was resolved by `LWG2567 <https://wg21.link/LWG2567>`__.
.. [#note-LWG2588] LWG2588: That LWG issue was resolved by `LWG2568 <https://wg21.link/LWG2568>`__.
.. [#note-LWG2955] LWG2955: That LWG issue was resolved by `P0682R1 <https://wg21.link/P0682R1>`__.
.. _issues-status-cxx17:
Library Working Group Issues Status
====================================

View File

@ -1,4 +1,4 @@
"Issue #","Issue Name","Meeting","Status","First released version","Labels"
"Issue #","Issue Name","Meeting","Status","First released version","Notes"
"`LWG2016 <https://wg21.link/LWG2016>`__","Allocators must be no-throw swappable","2014-11 (Urbana)","|Complete|","",""
"`LWG2118 <https://wg21.link/LWG2118>`__","``unique_ptr``\ for array does not support cv qualification conversion of actual argument","2014-11 (Urbana)","|Complete|","",""
"`LWG2170 <https://wg21.link/LWG2170>`__","Aggregates cannot be ``DefaultConstructible``\ ","2014-11 (Urbana)","|Complete|","",""
@ -211,8 +211,8 @@
"`LWG2570 <https://wg21.link/LWG2570>`__","[fund.ts.v2] conjunction and disjunction requirements are too strict","2016-11 (Issaquah)","","",""
"`LWG2578 <https://wg21.link/LWG2578>`__","Iterator requirements should reference iterator traits","2016-11 (Issaquah)","|Complete|","",""
"`LWG2584 <https://wg21.link/LWG2584>`__","<regex> ECMAScript IdentityEscape is ambiguous","2016-11 (Issaquah)","","",""
"`LWG2587 <https://wg21.link/LWG2587>`__","""Convertible to bool"" requirement in conjunction and disjunction","2016-11 (Issaquah)","|Nothing To Do| [#note-LWG2587]_","",""
"`LWG2588 <https://wg21.link/LWG2588>`__","[fund.ts.v2] ""Convertible to bool"" requirement in conjunction and disjunction","2016-11 (Issaquah)","|Nothing To Do| [#note-LWG2588]_","",""
"`LWG2587 <https://wg21.link/LWG2587>`__","""Convertible to bool"" requirement in conjunction and disjunction","2016-11 (Issaquah)","|Nothing To Do|","","Resolved by `LWG2567 <https://wg21.link/LWG2567>`__"
"`LWG2588 <https://wg21.link/LWG2588>`__","[fund.ts.v2] ""Convertible to bool"" requirement in conjunction and disjunction","2016-11 (Issaquah)","|Nothing To Do|","","Resolved by `LWG2568 <https://wg21.link/LWG2568>`__"
"`LWG2589 <https://wg21.link/LWG2589>`__","match_results can't satisfy the requirements of a container","2016-11 (Issaquah)","|Complete|","",""
"`LWG2591 <https://wg21.link/LWG2591>`__","std::function's member template target() should not lead to undefined behaviour","2016-11 (Issaquah)","|Complete|","",""
"`LWG2598 <https://wg21.link/LWG2598>`__","addressof works on temporaries","2016-11 (Issaquah)","|Complete|","",""
@ -310,5 +310,5 @@
"`LWG2934 <https://wg21.link/LWG2934>`__","optional<const T> doesn't compare with T","2017-02 (Kona)","|Complete|","",""
"","","","","",""
"`LWG2901 <https://wg21.link/LWG2901>`__","Variants cannot properly support allocators","2017-07 (Toronto)","|Complete|","",""
"`LWG2955 <https://wg21.link/LWG2955>`__","``to_chars / from_chars``\ depend on ``std::string``\ ","2017-07 (Toronto)","|Nothing To Do| [#note-LWG2955]_","",""
"`LWG2955 <https://wg21.link/LWG2955>`__","``to_chars / from_chars``\ depend on ``std::string``\ ","2017-07 (Toronto)","|Nothing To Do|","","Resolved by `P0682R1 <https://wg21.link/P0682R1>`__"
"`LWG2956 <https://wg21.link/LWG2956>`__","``filesystem::canonical()``\ still defined in terms of ``absolute(p, base)``\ ","2017-07 (Toronto)","|Complete|","",""

1 Issue # Issue Name Meeting Status First released version Labels Notes
2 `LWG2016 <https://wg21.link/LWG2016>`__ Allocators must be no-throw swappable 2014-11 (Urbana) |Complete|
3 `LWG2118 <https://wg21.link/LWG2118>`__ ``unique_ptr``\ for array does not support cv qualification conversion of actual argument 2014-11 (Urbana) |Complete|
4 `LWG2170 <https://wg21.link/LWG2170>`__ Aggregates cannot be ``DefaultConstructible``\ 2014-11 (Urbana) |Complete|
211 `LWG2570 <https://wg21.link/LWG2570>`__ [fund.ts.v2] conjunction and disjunction requirements are too strict 2016-11 (Issaquah)
212 `LWG2578 <https://wg21.link/LWG2578>`__ Iterator requirements should reference iterator traits 2016-11 (Issaquah) |Complete|
213 `LWG2584 <https://wg21.link/LWG2584>`__ <regex> ECMAScript IdentityEscape is ambiguous 2016-11 (Issaquah)
214 `LWG2587 <https://wg21.link/LWG2587>`__ "Convertible to bool" requirement in conjunction and disjunction 2016-11 (Issaquah) |Nothing To Do| [#note-LWG2587]_ |Nothing To Do| Resolved by `LWG2567 <https://wg21.link/LWG2567>`__
215 `LWG2588 <https://wg21.link/LWG2588>`__ [fund.ts.v2] "Convertible to bool" requirement in conjunction and disjunction 2016-11 (Issaquah) |Nothing To Do| [#note-LWG2588]_ |Nothing To Do| Resolved by `LWG2568 <https://wg21.link/LWG2568>`__
216 `LWG2589 <https://wg21.link/LWG2589>`__ match_results can't satisfy the requirements of a container 2016-11 (Issaquah) |Complete|
217 `LWG2591 <https://wg21.link/LWG2591>`__ std::function's member template target() should not lead to undefined behaviour 2016-11 (Issaquah) |Complete|
218 `LWG2598 <https://wg21.link/LWG2598>`__ addressof works on temporaries 2016-11 (Issaquah) |Complete|
310 `LWG2934 <https://wg21.link/LWG2934>`__ optional<const T> doesn't compare with T 2017-02 (Kona) |Complete|
311
312 `LWG2901 <https://wg21.link/LWG2901>`__ Variants cannot properly support allocators 2017-07 (Toronto) |Complete|
313 `LWG2955 <https://wg21.link/LWG2955>`__ ``to_chars / from_chars``\ depend on ``std::string``\ 2017-07 (Toronto) |Nothing To Do| [#note-LWG2955]_ |Nothing To Do| Resolved by `P0682R1 <https://wg21.link/P0682R1>`__
314 `LWG2956 <https://wg21.link/LWG2956>`__ ``filesystem::canonical()``\ still defined in terms of ``absolute(p, base)``\ 2017-07 (Toronto) |Complete|

View File

@ -1,10 +1,10 @@
"Paper #","Paper Name","Meeting","Status","First released version","Labels"
"Paper #","Paper Name","Meeting","Status","First released version","Notes"
"`N3911 <https://wg21.link/N3911>`__","TransformationTrait Alias ``void_t``\ .","2014-11 (Urbana)","|Complete|","3.6",""
"`N4089 <https://wg21.link/N4089>`__","Safe conversions in ``unique_ptr<T[]>``\ .","2014-11 (Urbana)","|In Progress|","3.9",""
"`N4169 <https://wg21.link/N4169>`__","A proposal to add invoke function template","2014-11 (Urbana)","|Complete|","3.7",""
"`N4190 <https://wg21.link/N4190>`__","Removing auto_ptr, random_shuffle(), And Old <functional> Stuff.","2014-11 (Urbana)","|Complete|","15.0",""
"`N4258 <https://wg21.link/N4258>`__","Cleaning-up noexcept in the Library.","2014-11 (Urbana)","|In Progress|","3.7",""
"`N4259 <https://wg21.link/N4259>`__","Wording for std::uncaught_exceptions","2014-11 (Urbana)","|Complete| [#note-N4259]_","3.7",""
"`N4259 <https://wg21.link/N4259>`__","Wording for std::uncaught_exceptions","2014-11 (Urbana)","|Complete|","3.7","``std::uncaught_exception`` is deprecated since LLVM 20.0"
"`N4277 <https://wg21.link/N4277>`__","TriviallyCopyable ``reference_wrapper``\ .","2014-11 (Urbana)","|Complete|","3.2",""
"`N4279 <https://wg21.link/N4279>`__","Improved insertion interface for unique-key maps.","2014-11 (Urbana)","|Complete|","3.7",""
"`N4280 <https://wg21.link/N4280>`__","Non-member size() and more","2014-11 (Urbana)","|Complete|","3.6",""
@ -21,12 +21,12 @@
"`P0006R0 <https://wg21.link/P0006R0>`__","Adopt Type Traits Variable Templates for C++17.","2015-10 (Kona)","|Complete|","3.8",""
"`P0092R1 <https://wg21.link/P0092R1>`__","Polishing <chrono>","2015-10 (Kona)","|Complete|","3.8",""
"`P0007R1 <https://wg21.link/P0007R1>`__","Constant View: A proposal for a ``std::as_const``\ helper function template.","2015-10 (Kona)","|Complete|","3.8",""
"`P0156R0 <https://wg21.link/P0156R0>`__","Variadic lock_guard(rev 3).","2015-10 (Kona)","|Nothing To Do| [#note-P0156]_","",""
"`P0156R0 <https://wg21.link/P0156R0>`__","Variadic lock_guard(rev 3).","2015-10 (Kona)","|Nothing To Do|","","Pulled at the 2017-01 meeting in Kona"
"`P0074R0 <https://wg21.link/P0074R0>`__","Making ``std::owner_less``\ more flexible","2015-10 (Kona)","|Complete|","3.8",""
"`P0013R1 <https://wg21.link/P0013R1>`__","Logical type traits rev 2","2015-10 (Kona)","|Complete|","3.8",""
"","","","","",""
"`P0024R2 <https://wg21.link/P0024R2>`__","The Parallelism TS Should be Standardized","2016-02 (Jacksonville)","|Partial|","",""
"`P0226R1 <https://wg21.link/P0226R1>`__","Mathematical Special Functions for C++17","2016-02 (Jacksonville)","|In Progress| [#note-P0226]_","",""
"`P0226R1 <https://wg21.link/P0226R1>`__","Mathematical Special Functions for C++17","2016-02 (Jacksonville)","|In Progress|","","Progress is tracked `here <https://github.com/llvm/llvm-project/issues/99939>`__"
"`P0220R1 <https://wg21.link/P0220R1>`__","Adopt Library Fundamentals V1 TS Components for C++17","2016-02 (Jacksonville)","|Complete|","16.0",""
"`P0218R1 <https://wg21.link/P0218R1>`__","Adopt the File System TS for C++17","2016-02 (Jacksonville)","|Complete|","7.0",""
"`P0033R1 <https://wg21.link/P0033R1>`__","Re-enabling shared_from_this","2016-02 (Jacksonville)","|Complete|","3.9",""
@ -35,7 +35,7 @@
"`P0185R1 <https://wg21.link/P0185R1>`__","Adding [nothrow-]swappable traits","2016-02 (Jacksonville)","|Complete|","3.9",""
"`P0253R1 <https://wg21.link/P0253R1>`__","Fixing a design mistake in the searchers interface","2016-02 (Jacksonville)","|Complete|","3.9",""
"`P0025R0 <https://wg21.link/P0025R0>`__","An algorithm to ""clamp"" a value between a pair of boundary values","2016-02 (Jacksonville)","|Complete|","3.9",""
"`P0154R1 <https://wg21.link/P0154R1>`__","constexpr std::hardware_{constructive,destructive}_interference_size","2016-02 (Jacksonville)","|Complete| [#note-P0154]_","19.0",""
"`P0154R1 <https://wg21.link/P0154R1>`__","constexpr std::hardware_{constructive,destructive}_interference_size","2016-02 (Jacksonville)","|Complete|","19.0","The required macros are only implemented as of LLVM 19."
"`P0030R1 <https://wg21.link/P0030R1>`__","Proposal to Introduce a 3-Argument Overload to std::hypot","2016-02 (Jacksonville)","|Complete|","3.9",""
"`P0031R0 <https://wg21.link/P0031R0>`__","A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access","2016-02 (Jacksonville)","|Complete|","4.0",""
"`P0272R1 <https://wg21.link/P0272R1>`__","Give ``std::string``\ a non-const ``.data()``\ member function","2016-02 (Jacksonville)","|Complete|","3.9",""
@ -44,7 +44,7 @@
"`P0032R3 <https://wg21.link/P0032R3>`__","Homogeneous interface for variant, any and optional","2016-06 (Oulu)","|Complete|","4.0",""
"`P0040R3 <https://wg21.link/P0040R3>`__","Extending memory management tools","2016-06 (Oulu)","|Complete|","4.0",""
"`P0063R3 <https://wg21.link/P0063R3>`__","C++17 should refer to C11 instead of C99","2016-06 (Oulu)","|Complete|","7.0",""
"`P0067R3 <https://wg21.link/P0067R3>`__","Elementary string conversions","2016-06 (Oulu)","|Nothing To Do| [#note-P0067R3]_","n/a",""
"`P0067R3 <https://wg21.link/P0067R3>`__","Elementary string conversions","2016-06 (Oulu)","|Nothing To Do|","n/a","Resolved by `P0067R5 <https://wg21.link/P0067R5>`__"
"`P0083R3 <https://wg21.link/P0083R3>`__","Splicing Maps and Sets","2016-06 (Oulu)","|Complete|","8.0",""
"`P0084R2 <https://wg21.link/P0084R2>`__","Emplace Return Type","2016-06 (Oulu)","|Complete|","4.0",""
"`P0088R3 <https://wg21.link/P0088R3>`__","Variant: a type-safe union for C++17","2016-06 (Oulu)","|Complete|","4.0",""
@ -53,7 +53,7 @@
"`P0174R2 <https://wg21.link/P0174R2>`__","Deprecating Vestigial Library Parts in C++17","2016-06 (Oulu)","|Complete|","15.0",""
"`P0175R1 <https://wg21.link/P0175R1>`__","Synopses for the C library","2016-06 (Oulu)","","",""
"`P0180R2 <https://wg21.link/P0180R2>`__","Reserve a New Library Namespace for Future Standardization","2016-06 (Oulu)","|Nothing To Do|","n/a",""
"`P0181R1 <https://wg21.link/P0181R1>`__","Ordered by Default","2016-06 (Oulu)","|Nothing To Do| [#note-P0181]_","n/a",""
"`P0181R1 <https://wg21.link/P0181R1>`__","Ordered by Default","2016-06 (Oulu)","|Nothing To Do|","n/a","Pulled at the 2017-01 meeting in Kona"
"`P0209R2 <https://wg21.link/P0209R2>`__","make_from_tuple: apply for construction","2016-06 (Oulu)","|Complete|","3.9",""
"`P0219R1 <https://wg21.link/P0219R1>`__","Relative Paths for Filesystem","2016-06 (Oulu)","|Complete|","7.0",""
"`P0254R2 <https://wg21.link/P0254R2>`__","Integrating std::string_view and std::string","2016-06 (Oulu)","|Complete|","4.0",""
@ -71,7 +71,7 @@
"`P0394R4 <https://wg21.link/P0394R4>`__","Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling","2016-06 (Oulu)","|Complete|","17.0",""
"","","","","",""
"`P0003R5 <https://wg21.link/P0003R5>`__","Removing Deprecated Exception Specifications from C++17","2016-11 (Issaquah)","|Complete|","5.0",""
"`P0067R5 <https://wg21.link/P0067R5>`__","Elementary string conversions, revision 5","2016-11 (Issaquah)","|Partial| [#note-P0067R5]_","",""
"`P0067R5 <https://wg21.link/P0067R5>`__","Elementary string conversions, revision 5","2016-11 (Issaquah)","|Partial|","","``std::(to|from)_chars`` for integrals has been available since version 7.0. ``std::to_chars`` for ``float`` and ``double`` since version 14.0 ``std::to_chars`` for ``long double`` uses the implementation for ``double``."
"`P0403R1 <https://wg21.link/P0403R1>`__","Literal suffixes for ``basic_string_view``\ ","2016-11 (Issaquah)","|Complete|","4.0",""
"`P0414R2 <https://wg21.link/P0414R2>`__","Merging shared_ptr changes from Library Fundamentals to C++17","2016-11 (Issaquah)","|Complete|","11.0",""
"`P0418R2 <https://wg21.link/P0418R2>`__","Fail or succeed: there is no atomic lattice","2016-11 (Issaquah)","","",""
@ -95,7 +95,7 @@
"`P0317R1 <https://wg21.link/P0317R1>`__","Directory Entry Caching for Filesystem","2017-02 (Kona)","|Complete|","7.0",""
"`P0430R2 <https://wg21.link/P0430R2>`__","File system library on non-POSIX-like operating systems","2017-02 (Kona)","|Complete|","7.0",""
"`P0433R2 <https://wg21.link/P0433R2>`__","Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library","2017-02 (Kona)","|Complete|","14.0",""
"`P0452R1 <https://wg21.link/P0452R1>`__","Unifying <numeric> Parallel Algorithms","2017-02 (Kona)","|Partial| [#note-P0452]_","",""
"`P0452R1 <https://wg21.link/P0452R1>`__","Unifying <numeric> Parallel Algorithms","2017-02 (Kona)","|Partial|","","The changes to ``std::transform_inclusive_scan`` and ``std::transform_exclusive_scan`` have not yet been implemented."
"`P0467R2 <https://wg21.link/P0467R2>`__","Iterator Concerns for Parallel Algorithms","2017-02 (Kona)","|Partial|","",""
"`P0492R2 <https://wg21.link/P0492R2>`__","Proposed Resolution of C++17 National Body Comments for Filesystems","2017-02 (Kona)","|Complete|","7.0",""
"`P0518R1 <https://wg21.link/P0518R1>`__","Allowing copies as arguments to function objects given to parallel algorithms in response to CH11","2017-02 (Kona)","|Nothing To Do|","",""
@ -105,7 +105,7 @@
"`P0574R1 <https://wg21.link/P0574R1>`__","Algorithm Complexity Constraints and Parallel Overloads","2017-02 (Kona)","|Nothing To Do|","",""
"`P0599R1 <https://wg21.link/P0599R1>`__","noexcept for hash functions","2017-02 (Kona)","|Complete|","5.0",""
"`P0604R0 <https://wg21.link/P0604R0>`__","Resolving GB 55, US 84, US 85, US 86","2017-02 (Kona)","|Complete|","",""
"`P0607R0 <https://wg21.link/P0607R0>`__","Inline Variables for the Standard Library","2017-02 (Kona)","|In Progress| [#note-P0607]_","6.0",""
"`P0607R0 <https://wg21.link/P0607R0>`__","Inline Variables for the Standard Library","2017-02 (Kona)","|In Progress|","6.0","The parts of P0607 that are not done are the ``<regex>`` bits"
"`P0618R0 <https://wg21.link/P0618R0>`__","Deprecating <codecvt>","2017-02 (Kona)","|Complete|","15.0",""
"`P0623R0 <https://wg21.link/P0623R0>`__","Final C++17 Parallel Algorithms Fixes","2017-02 (Kona)","|Nothing To Do|","",""
"","","","","",""

1 Paper # Paper Name Meeting Status First released version Labels Notes
2 `N3911 <https://wg21.link/N3911>`__ TransformationTrait Alias ``void_t``\ . 2014-11 (Urbana) |Complete| 3.6
3 `N4089 <https://wg21.link/N4089>`__ Safe conversions in ``unique_ptr<T[]>``\ . 2014-11 (Urbana) |In Progress| 3.9
4 `N4169 <https://wg21.link/N4169>`__ A proposal to add invoke function template 2014-11 (Urbana) |Complete| 3.7
5 `N4190 <https://wg21.link/N4190>`__ Removing auto_ptr, random_shuffle(), And Old <functional> Stuff. 2014-11 (Urbana) |Complete| 15.0
6 `N4258 <https://wg21.link/N4258>`__ Cleaning-up noexcept in the Library. 2014-11 (Urbana) |In Progress| 3.7
7 `N4259 <https://wg21.link/N4259>`__ Wording for std::uncaught_exceptions 2014-11 (Urbana) |Complete| [#note-N4259]_ |Complete| 3.7 ``std::uncaught_exception`` is deprecated since LLVM 20.0
8 `N4277 <https://wg21.link/N4277>`__ TriviallyCopyable ``reference_wrapper``\ . 2014-11 (Urbana) |Complete| 3.2
9 `N4279 <https://wg21.link/N4279>`__ Improved insertion interface for unique-key maps. 2014-11 (Urbana) |Complete| 3.7
10 `N4280 <https://wg21.link/N4280>`__ Non-member size() and more 2014-11 (Urbana) |Complete| 3.6
21 `P0006R0 <https://wg21.link/P0006R0>`__ Adopt Type Traits Variable Templates for C++17. 2015-10 (Kona) |Complete| 3.8
22 `P0092R1 <https://wg21.link/P0092R1>`__ Polishing <chrono> 2015-10 (Kona) |Complete| 3.8
23 `P0007R1 <https://wg21.link/P0007R1>`__ Constant View: A proposal for a ``std::as_const``\ helper function template. 2015-10 (Kona) |Complete| 3.8
24 `P0156R0 <https://wg21.link/P0156R0>`__ Variadic lock_guard(rev 3). 2015-10 (Kona) |Nothing To Do| [#note-P0156]_ |Nothing To Do| Pulled at the 2017-01 meeting in Kona
25 `P0074R0 <https://wg21.link/P0074R0>`__ Making ``std::owner_less``\ more flexible 2015-10 (Kona) |Complete| 3.8
26 `P0013R1 <https://wg21.link/P0013R1>`__ Logical type traits rev 2 2015-10 (Kona) |Complete| 3.8
27
28 `P0024R2 <https://wg21.link/P0024R2>`__ The Parallelism TS Should be Standardized 2016-02 (Jacksonville) |Partial|
29 `P0226R1 <https://wg21.link/P0226R1>`__ Mathematical Special Functions for C++17 2016-02 (Jacksonville) |In Progress| [#note-P0226]_ |In Progress| Progress is tracked `here <https://github.com/llvm/llvm-project/issues/99939>`__
30 `P0220R1 <https://wg21.link/P0220R1>`__ Adopt Library Fundamentals V1 TS Components for C++17 2016-02 (Jacksonville) |Complete| 16.0
31 `P0218R1 <https://wg21.link/P0218R1>`__ Adopt the File System TS for C++17 2016-02 (Jacksonville) |Complete| 7.0
32 `P0033R1 <https://wg21.link/P0033R1>`__ Re-enabling shared_from_this 2016-02 (Jacksonville) |Complete| 3.9
35 `P0185R1 <https://wg21.link/P0185R1>`__ Adding [nothrow-]swappable traits 2016-02 (Jacksonville) |Complete| 3.9
36 `P0253R1 <https://wg21.link/P0253R1>`__ Fixing a design mistake in the searchers interface 2016-02 (Jacksonville) |Complete| 3.9
37 `P0025R0 <https://wg21.link/P0025R0>`__ An algorithm to "clamp" a value between a pair of boundary values 2016-02 (Jacksonville) |Complete| 3.9
38 `P0154R1 <https://wg21.link/P0154R1>`__ constexpr std::hardware_{constructive,destructive}_interference_size 2016-02 (Jacksonville) |Complete| [#note-P0154]_ |Complete| 19.0 The required macros are only implemented as of LLVM 19.
39 `P0030R1 <https://wg21.link/P0030R1>`__ Proposal to Introduce a 3-Argument Overload to std::hypot 2016-02 (Jacksonville) |Complete| 3.9
40 `P0031R0 <https://wg21.link/P0031R0>`__ A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access 2016-02 (Jacksonville) |Complete| 4.0
41 `P0272R1 <https://wg21.link/P0272R1>`__ Give ``std::string``\ a non-const ``.data()``\ member function 2016-02 (Jacksonville) |Complete| 3.9
44 `P0032R3 <https://wg21.link/P0032R3>`__ Homogeneous interface for variant, any and optional 2016-06 (Oulu) |Complete| 4.0
45 `P0040R3 <https://wg21.link/P0040R3>`__ Extending memory management tools 2016-06 (Oulu) |Complete| 4.0
46 `P0063R3 <https://wg21.link/P0063R3>`__ C++17 should refer to C11 instead of C99 2016-06 (Oulu) |Complete| 7.0
47 `P0067R3 <https://wg21.link/P0067R3>`__ Elementary string conversions 2016-06 (Oulu) |Nothing To Do| [#note-P0067R3]_ |Nothing To Do| n/a Resolved by `P0067R5 <https://wg21.link/P0067R5>`__
48 `P0083R3 <https://wg21.link/P0083R3>`__ Splicing Maps and Sets 2016-06 (Oulu) |Complete| 8.0
49 `P0084R2 <https://wg21.link/P0084R2>`__ Emplace Return Type 2016-06 (Oulu) |Complete| 4.0
50 `P0088R3 <https://wg21.link/P0088R3>`__ Variant: a type-safe union for C++17 2016-06 (Oulu) |Complete| 4.0
53 `P0174R2 <https://wg21.link/P0174R2>`__ Deprecating Vestigial Library Parts in C++17 2016-06 (Oulu) |Complete| 15.0
54 `P0175R1 <https://wg21.link/P0175R1>`__ Synopses for the C library 2016-06 (Oulu)
55 `P0180R2 <https://wg21.link/P0180R2>`__ Reserve a New Library Namespace for Future Standardization 2016-06 (Oulu) |Nothing To Do| n/a
56 `P0181R1 <https://wg21.link/P0181R1>`__ Ordered by Default 2016-06 (Oulu) |Nothing To Do| [#note-P0181]_ |Nothing To Do| n/a Pulled at the 2017-01 meeting in Kona
57 `P0209R2 <https://wg21.link/P0209R2>`__ make_from_tuple: apply for construction 2016-06 (Oulu) |Complete| 3.9
58 `P0219R1 <https://wg21.link/P0219R1>`__ Relative Paths for Filesystem 2016-06 (Oulu) |Complete| 7.0
59 `P0254R2 <https://wg21.link/P0254R2>`__ Integrating std::string_view and std::string 2016-06 (Oulu) |Complete| 4.0
71 `P0394R4 <https://wg21.link/P0394R4>`__ Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling 2016-06 (Oulu) |Complete| 17.0
72
73 `P0003R5 <https://wg21.link/P0003R5>`__ Removing Deprecated Exception Specifications from C++17 2016-11 (Issaquah) |Complete| 5.0
74 `P0067R5 <https://wg21.link/P0067R5>`__ Elementary string conversions, revision 5 2016-11 (Issaquah) |Partial| [#note-P0067R5]_ |Partial| ``std::(to|from)_chars`` for integrals has been available since version 7.0. ``std::to_chars`` for ``float`` and ``double`` since version 14.0 ``std::to_chars`` for ``long double`` uses the implementation for ``double``.
75 `P0403R1 <https://wg21.link/P0403R1>`__ Literal suffixes for ``basic_string_view``\ 2016-11 (Issaquah) |Complete| 4.0
76 `P0414R2 <https://wg21.link/P0414R2>`__ Merging shared_ptr changes from Library Fundamentals to C++17 2016-11 (Issaquah) |Complete| 11.0
77 `P0418R2 <https://wg21.link/P0418R2>`__ Fail or succeed: there is no atomic lattice 2016-11 (Issaquah)
95 `P0317R1 <https://wg21.link/P0317R1>`__ Directory Entry Caching for Filesystem 2017-02 (Kona) |Complete| 7.0
96 `P0430R2 <https://wg21.link/P0430R2>`__ File system library on non-POSIX-like operating systems 2017-02 (Kona) |Complete| 7.0
97 `P0433R2 <https://wg21.link/P0433R2>`__ Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library 2017-02 (Kona) |Complete| 14.0
98 `P0452R1 <https://wg21.link/P0452R1>`__ Unifying <numeric> Parallel Algorithms 2017-02 (Kona) |Partial| [#note-P0452]_ |Partial| The changes to ``std::transform_inclusive_scan`` and ``std::transform_exclusive_scan`` have not yet been implemented.
99 `P0467R2 <https://wg21.link/P0467R2>`__ Iterator Concerns for Parallel Algorithms 2017-02 (Kona) |Partial|
100 `P0492R2 <https://wg21.link/P0492R2>`__ Proposed Resolution of C++17 National Body Comments for Filesystems 2017-02 (Kona) |Complete| 7.0
101 `P0518R1 <https://wg21.link/P0518R1>`__ Allowing copies as arguments to function objects given to parallel algorithms in response to CH11 2017-02 (Kona) |Nothing To Do|
105 `P0574R1 <https://wg21.link/P0574R1>`__ Algorithm Complexity Constraints and Parallel Overloads 2017-02 (Kona) |Nothing To Do|
106 `P0599R1 <https://wg21.link/P0599R1>`__ noexcept for hash functions 2017-02 (Kona) |Complete| 5.0
107 `P0604R0 <https://wg21.link/P0604R0>`__ Resolving GB 55, US 84, US 85, US 86 2017-02 (Kona) |Complete|
108 `P0607R0 <https://wg21.link/P0607R0>`__ Inline Variables for the Standard Library 2017-02 (Kona) |In Progress| [#note-P0607]_ |In Progress| 6.0 The parts of P0607 that are not done are the ``<regex>`` bits
109 `P0618R0 <https://wg21.link/P0618R0>`__ Deprecating <codecvt> 2017-02 (Kona) |Complete| 15.0
110 `P0623R0 <https://wg21.link/P0623R0>`__ Final C++17 Parallel Algorithms Fixes 2017-02 (Kona) |Nothing To Do|
111

View File

@ -26,8 +26,6 @@ The groups that have contributed papers:
.. note:: "Nothing to do" means that no library changes were needed to implement this change.
.. _paper-status-cxx20:
Paper Status
====================================
@ -36,38 +34,6 @@ Paper Status
:header-rows: 1
:widths: auto
.. note::
.. [#note-P0591] P0591: The changes in [mem.poly.allocator.mem] are missing.
.. [#note-P0645] P0645: The implementation was complete since Clang 14,
except the feature-test macro was not set until Clang 19.
.. [#note-P0966] P0966: It was previously erroneously marked as complete in version 8.0. See `bug 45368 <https://llvm.org/PR45368>`__.
.. [#note-P0619] P0619: Only sections D.7, D.8, D.9, D.10, D.11 and D.13 are implemented. Sections D.4 and D.12 remain undone.
.. [#note-P0883.1] P0883: shared_ptr and floating-point changes weren't applied as they themselves aren't implemented yet.
.. [#note-P0883.2] P0883: ``ATOMIC_FLAG_INIT`` was marked deprecated in version 14.0, but was undeprecated with the implementation of LWG3659 in version 15.0.
.. [#note-P0660] P0660: The paper is implemented but the features are experimental and can be enabled via ``-fexperimental-library``.
.. [#note-P1614] P1614: ``std::strong_order(long double, long double)`` is partly implemented.
.. [#note-P0542] P0542: That paper was pulled out of the draft at the 2019-07 meeting in Cologne.
.. [#note-P0788] P0788: That paper was pulled out of the draft at the 2019-07 meeting in Cologne.
.. [#note-P0920] P0920: That paper was reverted by `P1661 <https://wg21.link/P1661>`__.
.. [#note-P1424] P1424: That paper was superseded by `P1902 <https://wg21.link/P1902>`__.
.. [#note-LWG2070] LWG2070: That LWG issue was resolved by `P0674R1 <https://wg21.link/P0674R1>`__.
.. [#note-LWG2499] LWG2499: That LWG issue was resolved by `P0487R1 <https://wg21.link/P0487R1>`__.
.. [#note-LWG2797] LWG2797: That LWG issue was resolved by `P1285R0 <https://wg21.link/P1285R0>`__.
.. [#note-LWG3022] LWG3022: That LWG issue was resolved by `P1285R0 <https://wg21.link/P1285R0>`__.
.. [#note-LWG3134] LWG3134: That LWG issue was resolved by `P1210R0 <https://wg21.link/P1210R0>`__.
.. [#note-P0355] P0355: The implementation status is:
* ``Calendars`` mostly done in Clang 7
* ``Input parsers`` not done
* ``Stream output`` Obsolete due to `P1361R2 <https://wg21.link/P1361R2>`_ "Integration of chrono with text formatting"
* ``Time zone and leap seconds`` In Progress
* ``TAI clock`` not done
* ``GPS clock`` not done
* ``UTC clock`` not done
.. _issues-status-cxx20:
Library Working Group Issues Status
====================================

View File

@ -1,5 +1,5 @@
"Issue #","Issue Name","Meeting","Status","First released version","Labels"
"`LWG2070 <https://wg21.link/LWG2070>`__","``allocate_shared``\ should use ``allocator_traits<A>::construct``\ ","2017-07 (Toronto)","|Nothing To Do| [#note-LWG2070]_","",""
"Issue #","Issue Name","Meeting","Status","First released version","Notes"
"`LWG2070 <https://wg21.link/LWG2070>`__","``allocate_shared``\ should use ``allocator_traits<A>::construct``\ ","2017-07 (Toronto)","|Nothing To Do|","","Resolved by `P0674R1 <https://wg21.link/P0674R1>`__"
"`LWG2444 <https://wg21.link/LWG2444>`__","Inconsistent complexity for ``std::sort_heap``\ ","2017-07 (Toronto)","|Nothing To Do|","",""
"`LWG2593 <https://wg21.link/LWG2593>`__","Moved-from state of Allocators","2017-07 (Toronto)","","",""
"`LWG2597 <https://wg21.link/LWG2597>`__","``std::log``\ misspecified for complex numbers","2017-07 (Toronto)","","",""
@ -94,17 +94,17 @@
"`LWG2183 <https://wg21.link/LWG2183>`__","Muddled allocator requirements for ``match_results``\ constructors","2018-11 (San Diego)","|Complete|","",""
"`LWG2184 <https://wg21.link/LWG2184>`__","Muddled allocator requirements for ``match_results``\ assignments","2018-11 (San Diego)","|Complete|","",""
"`LWG2412 <https://wg21.link/LWG2412>`__","``promise::set_value()``\ and ``promise::get_future()``\ should not race","2018-11 (San Diego)","","",""
"`LWG2499 <https://wg21.link/LWG2499>`__","``operator>>(basic_istream&, CharT*)``\ makes it hard to avoid buffer overflows","2018-11 (San Diego)","|Nothing To Do| [#note-LWG2499]_","",""
"`LWG2499 <https://wg21.link/LWG2499>`__","``operator>>(basic_istream&, CharT*)``\ makes it hard to avoid buffer overflows","2018-11 (San Diego)","|Nothing To Do|","","Resolved by `P0487R1 <https://wg21.link/P0487R1>`__"
"`LWG2682 <https://wg21.link/LWG2682>`__","``filesystem::copy()``\ won't create a symlink to a directory","2018-11 (San Diego)","|Nothing To Do|","",""
"`LWG2697 <https://wg21.link/LWG2697>`__","[concurr.ts] Behavior of ``future/shared_future``\ unwrapping constructor when given an invalid ``future``\ ","2018-11 (San Diego)","","",""
"`LWG2797 <https://wg21.link/LWG2797>`__","Trait precondition violations","2018-11 (San Diego)","|Nothing To Do| [#note-LWG2797]_","",""
"`LWG2797 <https://wg21.link/LWG2797>`__","Trait precondition violations","2018-11 (San Diego)","|Nothing To Do|","","Resolved by `P1285R0 <https://wg21.link/P1285R0>`__"
"`LWG2936 <https://wg21.link/LWG2936>`__","Path comparison is defined in terms of the generic format","2018-11 (San Diego)","|Complete|","",""
"`LWG2943 <https://wg21.link/LWG2943>`__","Problematic specification of the wide version of ``basic_filebuf::open``\ ","2018-11 (San Diego)","|Nothing To Do|","",""
"`LWG2960 <https://wg21.link/LWG2960>`__","[fund.ts.v3] ``nonesuch``\ is insufficiently useless","2018-11 (San Diego)","|Complete|","",""
"`LWG2995 <https://wg21.link/LWG2995>`__","``basic_stringbuf``\ default constructor forbids it from using SSO capacity","2018-11 (San Diego)","|Complete|","20.0",""
"`LWG2996 <https://wg21.link/LWG2996>`__","Missing rvalue overloads for ``shared_ptr``\ operations","2018-11 (San Diego)","|Complete|","17.0",""
"`LWG3008 <https://wg21.link/LWG3008>`__","``make_shared``\ (sub)object destruction semantics are not specified","2018-11 (San Diego)","|Complete|","16.0",""
"`LWG3022 <https://wg21.link/LWG3022>`__","``is_convertible<derived*, base*>``\ may lead to ODR","2018-11 (San Diego)","|Nothing To Do| [#note-LWG3022]_","",""
"`LWG3022 <https://wg21.link/LWG3022>`__","``is_convertible<derived*, base*>``\ may lead to ODR","2018-11 (San Diego)","|Nothing To Do|","","Resolved by `P1285R0 <https://wg21.link/P1285R0>`__"
"`LWG3025 <https://wg21.link/LWG3025>`__","Map-like container deduction guides should use ``pair<Key, T>``\ , not ``pair<const Key, T>``\ ","2018-11 (San Diego)","|Complete|","",""
"`LWG3031 <https://wg21.link/LWG3031>`__","Algorithms and predicates with non-const reference arguments","2018-11 (San Diego)","","",""
"`LWG3037 <https://wg21.link/LWG3037>`__","``polymorphic_allocator``\ and incomplete types","2018-11 (San Diego)","|Complete|","16.0",""
@ -120,7 +120,7 @@
"`LWG3130 <https://wg21.link/LWG3130>`__","|sect|\ [input.output] needs many ``addressof``\ ","2018-11 (San Diego)","|Complete|","20.0",""
"`LWG3131 <https://wg21.link/LWG3131>`__","``addressof``\ all the things","2018-11 (San Diego)","","",""
"`LWG3132 <https://wg21.link/LWG3132>`__","Library needs to ban macros named ``expects``\ or ``ensures``\ ","2018-11 (San Diego)","|Nothing To Do|","",""
"`LWG3134 <https://wg21.link/LWG3134>`__","[fund.ts.v3] LFTSv3 contains extraneous [meta] variable templates that should have been deleted by P09961","2018-11 (San Diego)","|Nothing To Do| [#note-LWG3134]_","",""
"`LWG3134 <https://wg21.link/LWG3134>`__","[fund.ts.v3] LFTSv3 contains extraneous [meta] variable templates that should have been deleted by P09961","2018-11 (San Diego)","|Nothing To Do|","","Resolved by `P1210R0 <https://wg21.link/P1210R0>`__"
"`LWG3137 <https://wg21.link/LWG3137>`__","Header for ``__cpp_lib_to_chars``\ ","2018-11 (San Diego)","|Complete|","",""
"`LWG3140 <https://wg21.link/LWG3140>`__","``COMMON_REF``\ is unimplementable as specified","2018-11 (San Diego)","|Nothing To Do|","",""
"`LWG3145 <https://wg21.link/LWG3145>`__","``file_clock``\ breaks ABI for C++17 implementations","2018-11 (San Diego)","|Complete|","",""
@ -138,21 +138,21 @@
"`LWG3119 <https://wg21.link/LWG3119>`__","Program-definedness of closure types","2019-02 (Kona)","|Nothing To Do|","",""
"`LWG3133 <https://wg21.link/LWG3133>`__","Modernizing numeric type requirements","2019-02 (Kona)","","",""
"`LWG3144 <https://wg21.link/LWG3144>`__","``span``\ does not have a ``const_pointer``\ typedef","2019-02 (Kona)","|Complete|","",""
"`LWG3173 <https://wg21.link/LWG3173>`__","Enable CTAD for ``ref-view``\ ","2019-02 (Kona)","|Complete|","15.0","|ranges|"
"`LWG3179 <https://wg21.link/LWG3179>`__","``subrange``\ should always model ``Range``\ ","2019-02 (Kona)","|Nothing To Do|","","|ranges|"
"`LWG3180 <https://wg21.link/LWG3180>`__","Inconsistently named return type for ``ranges::minmax_element``\ ","2019-02 (Kona)","|Complete|","15.0","|ranges|"
"`LWG3173 <https://wg21.link/LWG3173>`__","Enable CTAD for ``ref-view``\ ","2019-02 (Kona)","|Complete|","15.0",""
"`LWG3179 <https://wg21.link/LWG3179>`__","``subrange``\ should always model ``Range``\ ","2019-02 (Kona)","|Nothing To Do|","",""
"`LWG3180 <https://wg21.link/LWG3180>`__","Inconsistently named return type for ``ranges::minmax_element``\ ","2019-02 (Kona)","|Complete|","15.0",""
"`LWG3182 <https://wg21.link/LWG3182>`__","Specification of ``Same``\ could be clearer","2019-02 (Kona)","|Complete|","15.0",""
"","","","","",""
"`LWG2899 <https://wg21.link/LWG2899>`__","``is_(nothrow_)move_constructible``\ and ``tuple``\ , ``optional``\ and ``unique_ptr``\ ","2019-07 (Cologne)","","",""
"`LWG3055 <https://wg21.link/LWG3055>`__","``path::operator+=(*single-character*)``\ misspecified","2019-07 (Cologne)","|Complete|","7.0",""
"`LWG3158 <https://wg21.link/LWG3158>`__","``tuple(allocator_arg_t, const Alloc&)``\ should be conditionally explicit","2019-07 (Cologne)","|Complete|","10.0",""
"`LWG3169 <https://wg21.link/LWG3169>`__","``ranges``\ permutation generators discard useful information","2019-07 (Cologne)","|Complete|","15.0","|ranges|"
"`LWG3183 <https://wg21.link/LWG3183>`__","Normative permission to specialize Ranges variable templates","2019-07 (Cologne)","|Nothing To Do|","","|ranges|"
"`LWG3169 <https://wg21.link/LWG3169>`__","``ranges``\ permutation generators discard useful information","2019-07 (Cologne)","|Complete|","15.0",""
"`LWG3183 <https://wg21.link/LWG3183>`__","Normative permission to specialize Ranges variable templates","2019-07 (Cologne)","|Nothing To Do|","",""
"`LWG3184 <https://wg21.link/LWG3184>`__","Inconsistencies in ``bind_front``\ wording","2019-07 (Cologne)","|Complete|","13.0",""
"`LWG3185 <https://wg21.link/LWG3185>`__","Uses-allocator construction functions missing ``constexpr``\ and ``noexcept``\ ","2019-07 (Cologne)","|Complete|","16.0",""
"`LWG3186 <https://wg21.link/LWG3186>`__","``ranges``\ removal, partition, and ``partial_sort_copy``\ algorithms discard useful information","2019-07 (Cologne)","|Complete|","15.0","|ranges|"
"`LWG3186 <https://wg21.link/LWG3186>`__","``ranges``\ removal, partition, and ``partial_sort_copy``\ algorithms discard useful information","2019-07 (Cologne)","|Complete|","15.0",""
"`LWG3187 <https://wg21.link/LWG3187>`__","`P0591R4 <https://wg21.link/p0591r4>`__ reverted DR 2586 fixes to ``scoped_allocator_adaptor::construct()``\ ","2019-07 (Cologne)","","",""
"`LWG3191 <https://wg21.link/LWG3191>`__","``std::ranges::shuffle``\ synopsis does not match algorithm definition","2019-07 (Cologne)","|Complete|","15.0","|ranges|"
"`LWG3191 <https://wg21.link/LWG3191>`__","``std::ranges::shuffle``\ synopsis does not match algorithm definition","2019-07 (Cologne)","|Complete|","15.0",""
"`LWG3196 <https://wg21.link/LWG3196>`__","``std::optional<T>``\ is ill-formed is ``T``\ is an array","2019-07 (Cologne)","|Complete|","",""
"`LWG3198 <https://wg21.link/LWG3198>`__","Bad constraint on ``std::span::span()``\ ","2019-07 (Cologne)","|Complete|","",""
"`LWG3199 <https://wg21.link/LWG3199>`__","``istream >> bitset<0>``\ fails","2019-07 (Cologne)","|Complete|","10.0",""
@ -162,141 +162,141 @@
"`LWG3209 <https://wg21.link/LWG3209>`__","Expression in ``year::ok()``\ returns clause is ill-formed","2019-07 (Cologne)","|Complete|","",""
"","","","","",""
"`LWG3231 <https://wg21.link/LWG3231>`__","``year_month_day_last::day``\ specification does not cover ``!ok()``\ values","2019-11 (Belfast)","|Nothing To Do|","",""
"`LWG3225 <https://wg21.link/LWG3225>`__","``zoned_time``\ converting constructor shall not be ``noexcept``\ ","2019-11 (Belfast)","|Complete|","19.0","|chrono|"
"`LWG3225 <https://wg21.link/LWG3225>`__","``zoned_time``\ converting constructor shall not be ``noexcept``\ ","2019-11 (Belfast)","|Complete|","19.0",""
"`LWG3190 <https://wg21.link/LWG3190>`__","``std::allocator::allocate``\ sometimes returns too little storage","2019-11 (Belfast)","|Complete|","14.0",""
"`LWG3218 <https://wg21.link/LWG3218>`__","Modifier for ``%d``\ parse flag does not match POSIX and ``format``\ specification","2019-11 (Belfast)","","","|chrono| |format|"
"`LWG3224 <https://wg21.link/LWG3224>`__","``zoned_time``\ constructor from ``TimeZonePtr``\ does not specify initialization of ``tp_``\ ","2019-11 (Belfast)","|Complete|","19.0","|chrono|"
"`LWG3230 <https://wg21.link/LWG3230>`__","Format specifier ``%y/%Y``\ is missing locale alternative versions","2019-11 (Belfast)","|Complete|","16.0","|chrono| |format|"
"`LWG3232 <https://wg21.link/LWG3232>`__","Inconsistency in ``zoned_time``\ deduction guides","2019-11 (Belfast)","|Complete|","19.0","|chrono|"
"`LWG3218 <https://wg21.link/LWG3218>`__","Modifier for ``%d``\ parse flag does not match POSIX and ``format``\ specification","2019-11 (Belfast)","","",""
"`LWG3224 <https://wg21.link/LWG3224>`__","``zoned_time``\ constructor from ``TimeZonePtr``\ does not specify initialization of ``tp_``\ ","2019-11 (Belfast)","|Complete|","19.0",""
"`LWG3230 <https://wg21.link/LWG3230>`__","Format specifier ``%y/%Y``\ is missing locale alternative versions","2019-11 (Belfast)","|Complete|","16.0",""
"`LWG3232 <https://wg21.link/LWG3232>`__","Inconsistency in ``zoned_time``\ deduction guides","2019-11 (Belfast)","|Complete|","19.0",""
"`LWG3222 <https://wg21.link/LWG3222>`__","P0574R1 introduced preconditions on non-existent parameters","2019-11 (Belfast)","","",""
"`LWG3221 <https://wg21.link/LWG3221>`__","Result of ``year_month``\ arithmetic with ``months``\ is ambiguous","2019-11 (Belfast)","|Complete|","8.0",""
"`LWG3235 <https://wg21.link/LWG3235>`__","``parse``\ manipulator without abbreviation is not callable","2019-11 (Belfast)","","",""
"`LWG3246 <https://wg21.link/LWG3246>`__","LWG3246: What are the constraints on the template parameter of `basic_format_arg`?","2019-11 (Belfast)","|Nothing To Do|","","|format|"
"`LWG3246 <https://wg21.link/LWG3246>`__","LWG3246: What are the constraints on the template parameter of `basic_format_arg`?","2019-11 (Belfast)","|Nothing To Do|","",""
"`LWG3253 <https://wg21.link/LWG3253>`__","``basic_syncbuf::basic_syncbuf()``\ should not be explicit","2019-11 (Belfast)","","",""
"`LWG3245 <https://wg21.link/LWG3245>`__","Unnecessary restriction on ``'%p'``\ parse specifier","2019-11 (Belfast)","","","|chrono|"
"`LWG3245 <https://wg21.link/LWG3245>`__","Unnecessary restriction on ``'%p'``\ parse specifier","2019-11 (Belfast)","","",""
"`LWG3244 <https://wg21.link/LWG3244>`__","Constraints for ``Source``\ in |sect|\ [fs.path.req] insufficiently constrainty","2019-11 (Belfast)","","",""
"`LWG3241 <https://wg21.link/LWG3241>`__","``chrono-spec``\ grammar ambiguity in |sect|\ [time.format]","2019-11 (Belfast)","|Complete|","16.0","|chrono| |format|"
"`LWG3241 <https://wg21.link/LWG3241>`__","``chrono-spec``\ grammar ambiguity in |sect|\ [time.format]","2019-11 (Belfast)","|Complete|","16.0",""
"`LWG3257 <https://wg21.link/LWG3257>`__","Missing feature testing macro update from P0858","2019-11 (Belfast)","|Complete|","12.0",""
"`LWG3256 <https://wg21.link/LWG3256>`__","Feature testing macro for ``constexpr``\ algorithms","2019-11 (Belfast)","|Complete|","13.0",""
"`LWG3273 <https://wg21.link/LWG3273>`__","Specify ``weekday_indexed``\ to range of ``[0, 7]``\ ","2019-11 (Belfast)","|Complete|","16.0","|chrono|"
"`LWG3273 <https://wg21.link/LWG3273>`__","Specify ``weekday_indexed``\ to range of ``[0, 7]``\ ","2019-11 (Belfast)","|Complete|","16.0",""
"`LWG3070 <https://wg21.link/LWG3070>`__","``path::lexically_relative``\ causes surprising results if a filename can also be a *root-name*","2019-11 (Belfast)","","",""
"`LWG3266 <https://wg21.link/LWG3266>`__","``to_chars(bool)``\ should be deleted","2019-11 (Belfast)","|Complete|","14.0",""
"`LWG3272 <https://wg21.link/LWG3272>`__","``%I%p``\ should parse/format ``duration``\ since midnight","2019-11 (Belfast)","","","|chrono| |format|"
"`LWG3272 <https://wg21.link/LWG3272>`__","``%I%p``\ should parse/format ``duration``\ since midnight","2019-11 (Belfast)","","",""
"`LWG3259 <https://wg21.link/LWG3259>`__","The definition of *constexpr iterators* should be adjusted","2019-11 (Belfast)","|Nothing To Do|","",""
"`LWG3103 <https://wg21.link/LWG3103>`__","Errors in taking subview of ``span``\ should be ill-formed where possible","2019-11 (Belfast)","|Complete|","11.0",""
"`LWG3274 <https://wg21.link/LWG3274>`__","Missing feature test macro for ``<span>``\ ","2019-11 (Belfast)","|Complete|","11.0",""
"`LWG3276 <https://wg21.link/LWG3276>`__","Class ``split_view::outer_iterator::value_type``\ should inherit from ``view_interface``\ ","2019-11 (Belfast)","|Complete|","15.0","|ranges|"
"`LWG3277 <https://wg21.link/LWG3277>`__","Pre-increment on prvalues is not a requirement of ``weakly_incrementable``\ ","2019-11 (Belfast)","|Nothing To Do|","","|ranges|"
"`LWG3276 <https://wg21.link/LWG3276>`__","Class ``split_view::outer_iterator::value_type``\ should inherit from ``view_interface``\ ","2019-11 (Belfast)","|Complete|","15.0",""
"`LWG3277 <https://wg21.link/LWG3277>`__","Pre-increment on prvalues is not a requirement of ``weakly_incrementable``\ ","2019-11 (Belfast)","|Nothing To Do|","",""
"`LWG3149 <https://wg21.link/LWG3149>`__","``DefaultConstructible``\ should require default initialization","2019-11 (Belfast)","|Complete|","13.0",""
"","","","","",""
"`LWG1203 <https://wg21.link/LWG1203>`__","More useful rvalue stream insertion","2020-02 (Prague)","|Complete|","12.0",""
"`LWG2859 <https://wg21.link/LWG2859>`__","Definition of *reachable* in [ptr.launder] misses pointer arithmetic from pointer-interconvertible object","2020-02 (Prague)","","",""
"`LWG3018 <https://wg21.link/LWG3018>`__","``shared_ptr``\ of function type","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3050 <https://wg21.link/LWG3050>`__","Conversion specification problem in ``chrono::duration``\ constructor","2020-02 (Prague)","|Complete|","19.0","|chrono|"
"`LWG3050 <https://wg21.link/LWG3050>`__","Conversion specification problem in ``chrono::duration``\ constructor","2020-02 (Prague)","|Complete|","19.0",""
"`LWG3141 <https://wg21.link/LWG3141>`__","``CopyConstructible``\ doesn't preserve source values","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3150 <https://wg21.link/LWG3150>`__","``UniformRandomBitGenerator``\ should validate ``min``\ and ``max``\ ","2020-02 (Prague)","|Complete|","13.0","|ranges|"
"`LWG3150 <https://wg21.link/LWG3150>`__","``UniformRandomBitGenerator``\ should validate ``min``\ and ``max``\ ","2020-02 (Prague)","|Complete|","13.0",""
"`LWG3175 <https://wg21.link/LWG3175>`__","The ``CommonReference``\ requirement of concept ``SwappableWith``\ is not satisfied in the example","2020-02 (Prague)","|Complete|","13.0",""
"`LWG3194 <https://wg21.link/LWG3194>`__","``ConvertibleTo``\ prose does not match code","2020-02 (Prague)","|Complete|","13.0",""
"`LWG3200 <https://wg21.link/LWG3200>`__","``midpoint``\ should not constrain ``T``\ is complete","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3201 <https://wg21.link/LWG3201>`__","``lerp``\ should be marked as ``noexcept``\ ","2020-02 (Prague)","|Complete|","",""
"`LWG3226 <https://wg21.link/LWG3226>`__","``zoned_time``\ constructor from ``string_view``\ should accept ``zoned_time<Duration2, TimeZonePtr2>``\ ","2020-02 (Prague)","|Complete|","19.0","|chrono|"
"`LWG3226 <https://wg21.link/LWG3226>`__","``zoned_time``\ constructor from ``string_view``\ should accept ``zoned_time<Duration2, TimeZonePtr2>``\ ","2020-02 (Prague)","|Complete|","19.0",""
"`LWG3233 <https://wg21.link/LWG3233>`__","Broken requirements for ``shared_ptr``\ converting constructors","2020-02 (Prague)","|Complete|","19.0",""
"`LWG3237 <https://wg21.link/LWG3237>`__","LWG 3038 and 3190 have inconsistent PRs","2020-02 (Prague)","|Complete|","16.0",""
"`LWG3238 <https://wg21.link/LWG3238>`__","Insufficiently-defined behavior of ``std::function``\ deduction guides","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3242 <https://wg21.link/LWG3242>`__","``std::format``\ : missing rules for ``arg-id``\ in ``width``\ and ``precision``\ ","2020-02 (Prague)","|Complete|","14.0","|format|"
"`LWG3243 <https://wg21.link/LWG3243>`__","``std::format``\ and negative zeroes","2020-02 (Prague)","|Complete|","14.0","|format|"
"`LWG3247 <https://wg21.link/LWG3247>`__","``ranges::iter_move``\ should perform ADL-only lookup of ``iter_move``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3248 <https://wg21.link/LWG3248>`__","``std::format``\ ``#b``\ , ``#B``\ , ``#o``\ , ``#x``\ , and ``#X``\ presentation types misformat negative numbers","2020-02 (Prague)","|Complete|","14.0","|format|"
"`LWG3250 <https://wg21.link/LWG3250>`__","``std::format``\ : ``#``\ (alternate form) for NaN and inf","2020-02 (Prague)","|Complete|","14.0","|format|"
"`LWG3251 <https://wg21.link/LWG3251>`__","Are ``std::format``\ alignment specifiers applied to string arguments?","2020-02 (Prague)","|Complete|","14.0","|format|"
"`LWG3252 <https://wg21.link/LWG3252>`__","Parse locale's aware modifiers for commands are not consistent with POSIX spec","2020-02 (Prague)","","","|chrono|"
"`LWG3242 <https://wg21.link/LWG3242>`__","``std::format``\ : missing rules for ``arg-id``\ in ``width``\ and ``precision``\ ","2020-02 (Prague)","|Complete|","14.0",""
"`LWG3243 <https://wg21.link/LWG3243>`__","``std::format``\ and negative zeroes","2020-02 (Prague)","|Complete|","14.0",""
"`LWG3247 <https://wg21.link/LWG3247>`__","``ranges::iter_move``\ should perform ADL-only lookup of ``iter_move``\ ","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3248 <https://wg21.link/LWG3248>`__","``std::format``\ ``#b``\ , ``#B``\ , ``#o``\ , ``#x``\ , and ``#X``\ presentation types misformat negative numbers","2020-02 (Prague)","|Complete|","14.0",""
"`LWG3250 <https://wg21.link/LWG3250>`__","``std::format``\ : ``#``\ (alternate form) for NaN and inf","2020-02 (Prague)","|Complete|","14.0",""
"`LWG3251 <https://wg21.link/LWG3251>`__","Are ``std::format``\ alignment specifiers applied to string arguments?","2020-02 (Prague)","|Complete|","14.0",""
"`LWG3252 <https://wg21.link/LWG3252>`__","Parse locale's aware modifiers for commands are not consistent with POSIX spec","2020-02 (Prague)","","",""
"`LWG3254 <https://wg21.link/LWG3254>`__","Strike ``stop_token``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17.0",""
"`LWG3255 <https://wg21.link/LWG3255>`__","``span``\ 's ``array``\ constructor is too strict","2020-02 (Prague)","|Complete|","",""
"`LWG3260 <https://wg21.link/LWG3260>`__","``year_month*``\ arithmetic rejects durations convertible to years","2020-02 (Prague)","","","|chrono|"
"`LWG3262 <https://wg21.link/LWG3262>`__","Formatting of negative durations is not specified","2020-02 (Prague)","|Complete|","16.0","|chrono| |format|"
"`LWG3264 <https://wg21.link/LWG3264>`__","``sized_range``\ and ``ranges::size``\ redundantly use ``disable_sized_range``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3269 <https://wg21.link/LWG3269>`__","Parse manipulators do not specify the result of the extraction from stream","2020-02 (Prague)","","","|chrono|"
"`LWG3270 <https://wg21.link/LWG3270>`__","Parsing and formatting ``%j``\ with ``duration``\ s","2020-02 (Prague)","|Partial|","","|chrono| |format|"
"`LWG3280 <https://wg21.link/LWG3280>`__","View converting constructors can cause constraint recursion and are unneeded","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3281 <https://wg21.link/LWG3281>`__","Conversion from ``*pair-like*``\ types to ``subrange``\ is a silent semantic promotion","2020-02 (Prague)","|Complete|","13.0","|ranges|"
"`LWG3282 <https://wg21.link/LWG3282>`__","``subrange``\ converting constructor should disallow derived to base conversions","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3284 <https://wg21.link/LWG3284>`__","``random_access_iterator``\ semantic constraints accidentally promote difference type using unary negate","2020-02 (Prague)","|Nothing To Do|","","|ranges|"
"`LWG3285 <https://wg21.link/LWG3285>`__","The type of a customization point object shall satisfy ``semiregular``\ ","2020-02 (Prague)","|Nothing To Do|","","|ranges|"
"`LWG3286 <https://wg21.link/LWG3286>`__","``ranges::size``\ is not required to be valid after a call to ``ranges::begin``\ on an input range","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3291 <https://wg21.link/LWG3291>`__","``iota_view::iterator``\ has the wrong ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3292 <https://wg21.link/LWG3292>`__","``iota_view``\ is under-constrained","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3294 <https://wg21.link/LWG3294>`__","``zoned_time``\ deduction guides misinterprets ``string``\ /``char*``\ ","2020-02 (Prague)","|Complete|","19.0","|chrono|"
"`LWG3260 <https://wg21.link/LWG3260>`__","``year_month*``\ arithmetic rejects durations convertible to years","2020-02 (Prague)","","",""
"`LWG3262 <https://wg21.link/LWG3262>`__","Formatting of negative durations is not specified","2020-02 (Prague)","|Complete|","16.0",""
"`LWG3264 <https://wg21.link/LWG3264>`__","``sized_range``\ and ``ranges::size``\ redundantly use ``disable_sized_range``\ ","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3269 <https://wg21.link/LWG3269>`__","Parse manipulators do not specify the result of the extraction from stream","2020-02 (Prague)","","",""
"`LWG3270 <https://wg21.link/LWG3270>`__","Parsing and formatting ``%j``\ with ``duration``\ s","2020-02 (Prague)","|Partial|","",""
"`LWG3280 <https://wg21.link/LWG3280>`__","View converting constructors can cause constraint recursion and are unneeded","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3281 <https://wg21.link/LWG3281>`__","Conversion from ``*pair-like*``\ types to ``subrange``\ is a silent semantic promotion","2020-02 (Prague)","|Complete|","13.0",""
"`LWG3282 <https://wg21.link/LWG3282>`__","``subrange``\ converting constructor should disallow derived to base conversions","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3284 <https://wg21.link/LWG3284>`__","``random_access_iterator``\ semantic constraints accidentally promote difference type using unary negate","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3285 <https://wg21.link/LWG3285>`__","The type of a customization point object shall satisfy ``semiregular``\ ","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3286 <https://wg21.link/LWG3286>`__","``ranges::size``\ is not required to be valid after a call to ``ranges::begin``\ on an input range","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3291 <https://wg21.link/LWG3291>`__","``iota_view::iterator``\ has the wrong ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3292 <https://wg21.link/LWG3292>`__","``iota_view``\ is under-constrained","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3294 <https://wg21.link/LWG3294>`__","``zoned_time``\ deduction guides misinterprets ``string``\ /``char*``\ ","2020-02 (Prague)","|Complete|","19.0",""
"`LWG3296 <https://wg21.link/LWG3296>`__","Inconsistent default argument for ``basic_regex<>::assign``\ ","2020-02 (Prague)","|Complete|","",""
"`LWG3299 <https://wg21.link/LWG3299>`__","Pointers don't need customized iterator behavior","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3299 <https://wg21.link/LWG3299>`__","Pointers don't need customized iterator behavior","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3300 <https://wg21.link/LWG3300>`__","Non-array ``ssize``\ overload is underconstrained","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3301 <https://wg21.link/LWG3301>`__","``transform_view::iterator``\ has incorrect ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3302 <https://wg21.link/LWG3302>`__","Range adaptor objects ``keys``\ and ``values``\ are unspecified","2020-02 (Prague)","|Complete|","16.0","|ranges|"
"`LWG3301 <https://wg21.link/LWG3301>`__","``transform_view::iterator``\ has incorrect ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3302 <https://wg21.link/LWG3302>`__","Range adaptor objects ``keys``\ and ``values``\ are unspecified","2020-02 (Prague)","|Complete|","16.0",""
"`LWG3303 <https://wg21.link/LWG3303>`__","Bad ""``constexpr``\ "" marker for ``destroy/destroy_n``\ ","2020-02 (Prague)","","",""
"`LWG3304 <https://wg21.link/LWG3304>`__","Allocate functions of ``std::polymorphic_allocator``\ should require ``[[nodiscard]]``\ ","2020-02 (Prague)","|Complete|","16.0",""
"`LWG3307 <https://wg21.link/LWG3307>`__","``std::allocator<void>().allocate(n)``\ ","2020-02 (Prague)","|Complete|","20.0",""
"`LWG3310 <https://wg21.link/LWG3310>`__","Replace ``SIZE_MAX``\ with ``numeric_limits<size_t>::max()``\ ","2020-02 (Prague)","|Complete|","16.0",""
"`LWG3313 <https://wg21.link/LWG3313>`__","``join_view::iterator::operator--``\ is incorrectly constrained","2020-02 (Prague)","|Complete|","14.0","|ranges|"
"`LWG3314 <https://wg21.link/LWG3314>`__","Is stream insertion behavior locale dependent when ``Period::type``\ is ``micro``\ ?","2020-02 (Prague)","|Complete|","16.0","|chrono|"
"`LWG3313 <https://wg21.link/LWG3313>`__","``join_view::iterator::operator--``\ is incorrectly constrained","2020-02 (Prague)","|Complete|","14.0",""
"`LWG3314 <https://wg21.link/LWG3314>`__","Is stream insertion behavior locale dependent when ``Period::type``\ is ``micro``\ ?","2020-02 (Prague)","|Complete|","16.0",""
"`LWG3315 <https://wg21.link/LWG3315>`__","LWG3315: Correct Allocator Default Behavior","2020-02 (Prague)","|Complete|","",""
"`LWG3316 <https://wg21.link/LWG3316>`__","Correctly define epoch for ``utc_clock``\ / ``utc_timepoint``\ ","2020-02 (Prague)","","","|chrono|"
"`LWG3317 <https://wg21.link/LWG3317>`__","Incorrect ``operator<<``\ for floating-point durations","2020-02 (Prague)","","","|chrono|"
"`LWG3318 <https://wg21.link/LWG3318>`__","Clarify whether clocks can represent time before their epoch","2020-02 (Prague)","","","|chrono|"
"`LWG3319 <https://wg21.link/LWG3319>`__","Properly reference specification of IANA time zone database","2020-02 (Prague)","|Nothing To Do|","","|chrono|"
"`LWG3316 <https://wg21.link/LWG3316>`__","Correctly define epoch for ``utc_clock``\ / ``utc_timepoint``\ ","2020-02 (Prague)","","",""
"`LWG3317 <https://wg21.link/LWG3317>`__","Incorrect ``operator<<``\ for floating-point durations","2020-02 (Prague)","","",""
"`LWG3318 <https://wg21.link/LWG3318>`__","Clarify whether clocks can represent time before their epoch","2020-02 (Prague)","","",""
"`LWG3319 <https://wg21.link/LWG3319>`__","Properly reference specification of IANA time zone database","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3320 <https://wg21.link/LWG3320>`__","``span::cbegin/cend``\ methods produce different results than ``std::[ranges::]cbegin/cend``\ ","2020-02 (Prague)","|Complete|","",""
"`LWG3321 <https://wg21.link/LWG3321>`__","``uninitialized_construct_using_allocator``\ should use ``construct_at``\ ","2020-02 (Prague)","|Complete|","16.0",""
"`LWG3323 <https://wg21.link/LWG3323>`__","``*has-tuple-element*``\ helper concept needs ``convertible_to``\ ","2020-02 (Prague)","|Complete|","16.0","|ranges|"
"`LWG3324 <https://wg21.link/LWG3324>`__","Special-case ``std::strong/weak/partial_order``\ for pointers","2020-02 (Prague)","|Complete|","14.0","|spaceship|"
"`LWG3325 <https://wg21.link/LWG3325>`__","Constrain return type of transformation function for ``transform_view``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3326 <https://wg21.link/LWG3326>`__","``enable_view``\ has false positives","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3327 <https://wg21.link/LWG3327>`__","Format alignment specifiers vs. text direction","2020-02 (Prague)","|Nothing To Do|","","|format|"
"`LWG3323 <https://wg21.link/LWG3323>`__","``*has-tuple-element*``\ helper concept needs ``convertible_to``\ ","2020-02 (Prague)","|Complete|","16.0",""
"`LWG3324 <https://wg21.link/LWG3324>`__","Special-case ``std::strong/weak/partial_order``\ for pointers","2020-02 (Prague)","|Complete|","14.0",""
"`LWG3325 <https://wg21.link/LWG3325>`__","Constrain return type of transformation function for ``transform_view``\ ","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3326 <https://wg21.link/LWG3326>`__","``enable_view``\ has false positives","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3327 <https://wg21.link/LWG3327>`__","Format alignment specifiers vs. text direction","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3328 <https://wg21.link/LWG3328>`__","Clarify that ``std::string``\ is not good for UTF-8","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3329 <https://wg21.link/LWG3329>`__","``totally_ordered_with``\ both directly and indirectly requires ``common_reference_with``\ ","2020-02 (Prague)","|Complete|","13.0",""
"`LWG3330 <https://wg21.link/LWG3330>`__","Include ``<compare>``\ from most library headers","2020-02 (Prague)","|Complete|","13.0","|spaceship|"
"`LWG3330 <https://wg21.link/LWG3330>`__","Include ``<compare>``\ from most library headers","2020-02 (Prague)","|Complete|","13.0",""
"`LWG3331 <https://wg21.link/LWG3331>`__","Define ``totally_ordered/_with``\ in terms of ``partially-ordered-with``\ ","2020-02 (Prague)","|Complete|","13.0",""
"`LWG3332 <https://wg21.link/LWG3332>`__","Issue in |sect|\ [time.format]","2020-02 (Prague)","|Complete|","16.0","|chrono| |format|"
"`LWG3332 <https://wg21.link/LWG3332>`__","Issue in |sect|\ [time.format]","2020-02 (Prague)","|Complete|","16.0",""
"`LWG3334 <https://wg21.link/LWG3334>`__","``basic_osyncstream``\ move assignment and destruction calls ``basic_syncbuf::emit()``\ twice","2020-02 (Prague)","|Complete|","18.0",""
"`LWG3335 <https://wg21.link/LWG3335>`__","Resolve C++20 NB comments US 273 and GB 274","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3335 <https://wg21.link/LWG3335>`__","Resolve C++20 NB comments US 273 and GB 274","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3338 <https://wg21.link/LWG3338>`__","Rename ``default_constructible``\ to ``default_initializable``\ ","2020-02 (Prague)","|Complete|","13.0",""
"`LWG3340 <https://wg21.link/LWG3340>`__","Formatting functions should throw on argument/format string mismatch in |sect|\ [format.functions]","2020-02 (Prague)","|Complete|","14.0","|format|"
"`LWG3340 <https://wg21.link/LWG3340>`__","Formatting functions should throw on argument/format string mismatch in |sect|\ [format.functions]","2020-02 (Prague)","|Complete|","14.0",""
"`LWG3346 <https://wg21.link/LWG3346>`__","``pair``\ and ``tuple``\ copy and move constructor have backwards specification","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3347 <https://wg21.link/LWG3347>`__","``std::pair<T, U>``\ now requires ``T``\ and ``U``\ to be less-than-comparable","2020-02 (Prague)","|Complete|","17.0",""
"`LWG3348 <https://wg21.link/LWG3348>`__","``__cpp_lib_unwrap_ref``\ in wrong header","2020-02 (Prague)","|Complete|","12.0",""
"`LWG3349 <https://wg21.link/LWG3349>`__","Missing ``__cpp_lib_constexpr_complex``\ for P0415R1","2020-02 (Prague)","|Complete|","16.0",""
"`LWG3350 <https://wg21.link/LWG3350>`__","Simplify return type of ``lexicographical_compare_three_way``\ ","2020-02 (Prague)","|Complete|","17.0","|spaceship|"
"`LWG3351 <https://wg21.link/LWG3351>`__","``ranges::enable_safe_range``\ should not be constrained","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3352 <https://wg21.link/LWG3352>`__","``strong_equality``\ isn't a thing","2020-02 (Prague)","|Complete|","19.0","|spaceship|"
"`LWG3354 <https://wg21.link/LWG3354>`__","``has_strong_structural_equality``\ has a meaningless definition","2020-02 (Prague)","|Nothing To Do|","","|spaceship|"
"`LWG3355 <https://wg21.link/LWG3355>`__","The memory algorithms should support move-only input iterators introduced by P1207","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3350 <https://wg21.link/LWG3350>`__","Simplify return type of ``lexicographical_compare_three_way``\ ","2020-02 (Prague)","|Complete|","17.0",""
"`LWG3351 <https://wg21.link/LWG3351>`__","``ranges::enable_safe_range``\ should not be constrained","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3352 <https://wg21.link/LWG3352>`__","``strong_equality``\ isn't a thing","2020-02 (Prague)","|Complete|","19.0",""
"`LWG3354 <https://wg21.link/LWG3354>`__","``has_strong_structural_equality``\ has a meaningless definition","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3355 <https://wg21.link/LWG3355>`__","The memory algorithms should support move-only input iterators introduced by P1207","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3356 <https://wg21.link/LWG3356>`__","``__cpp_lib_nothrow_convertible``\ should be ``__cpp_lib_is_nothrow_convertible``\ ","2020-02 (Prague)","|Complete|","12.0",""
"`LWG3358 <https://wg21.link/LWG3358>`__","|sect|\ [span.cons] is mistaken that ``to_address``\ can throw","2020-02 (Prague)","|Complete|","17.0",""
"`LWG3359 <https://wg21.link/LWG3359>`__","``<chrono>``\ leap second support should allow for negative leap seconds","2020-02 (Prague)","|In Progress|","","|chrono|"
"`LWG3360 <https://wg21.link/LWG3360>`__","``three_way_comparable_with``\ is inconsistent with similar concepts","2020-02 (Prague)","|Nothing To Do|","","|spaceship|"
"`LWG3359 <https://wg21.link/LWG3359>`__","``<chrono>``\ leap second support should allow for negative leap seconds","2020-02 (Prague)","|In Progress|","",""
"`LWG3360 <https://wg21.link/LWG3360>`__","``three_way_comparable_with``\ is inconsistent with similar concepts","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3362 <https://wg21.link/LWG3362>`__","Strike ``stop_source``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17.0",""
"`LWG3363 <https://wg21.link/LWG3363>`__","``drop_while_view``\ should opt-out of ``sized_range``\ ","2020-02 (Prague)","|Nothing To Do|","","|ranges|"
"`LWG3364 <https://wg21.link/LWG3364>`__","Initialize data members of ranges and their iterators","2020-02 (Prague)","|Complete|","16.0","|ranges|"
"`LWG3363 <https://wg21.link/LWG3363>`__","``drop_while_view``\ should opt-out of ``sized_range``\ ","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3364 <https://wg21.link/LWG3364>`__","Initialize data members of ranges and their iterators","2020-02 (Prague)","|Complete|","16.0",""
"`LWG3367 <https://wg21.link/LWG3367>`__","Integer-class conversions should not throw","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3369 <https://wg21.link/LWG3369>`__","``span``\ 's deduction-guide for built-in arrays doesn't work","2020-02 (Prague)","|Complete|","14.0",""
"`LWG3371 <https://wg21.link/LWG3371>`__","``visit_format_arg``\ and ``make_format_args``\ are not hidden friends","2020-02 (Prague)","|Complete|","14.0","|format|"
"`LWG3372 <https://wg21.link/LWG3372>`__","``vformat_to``\ should not try to deduce ``Out``\ twice","2020-02 (Prague)","|Complete|","14.0","|format|"
"`LWG3373 <https://wg21.link/LWG3373>`__","``{to,from}_chars_result``\ and ``format_to_n_result``\ need the ""we really mean what we say"" wording","2020-02 (Prague)","|Complete|","14.0","|format|"
"`LWG3371 <https://wg21.link/LWG3371>`__","``visit_format_arg``\ and ``make_format_args``\ are not hidden friends","2020-02 (Prague)","|Complete|","14.0",""
"`LWG3372 <https://wg21.link/LWG3372>`__","``vformat_to``\ should not try to deduce ``Out``\ twice","2020-02 (Prague)","|Complete|","14.0",""
"`LWG3373 <https://wg21.link/LWG3373>`__","``{to,from}_chars_result``\ and ``format_to_n_result``\ need the ""we really mean what we say"" wording","2020-02 (Prague)","|Complete|","14.0",""
"`LWG3374 <https://wg21.link/LWG3374>`__","P0653 + P1006 should have made the other ``std::to_address``\ overload ``constexpr``\ ","2020-02 (Prague)","|Complete|","12.0",""
"`LWG3375 <https://wg21.link/LWG3375>`__","``decay``\ in ``viewable_range``\ should be ``remove_cvref``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3377 <https://wg21.link/LWG3377>`__","``elements_view::iterator``\ befriends a specialization of itself","2020-02 (Prague)","|Nothing To Do|","","|ranges|"
"`LWG3379 <https://wg21.link/LWG3379>`__","""``safe``\ "" in several library names is misleading","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3380 <https://wg21.link/LWG3380>`__","``common_type``\ and comparison categories","2020-02 (Prague)","|Complete|","15.0","|spaceship|"
"`LWG3381 <https://wg21.link/LWG3381>`__","``begin``\ and ``data``\ must agree for ``contiguous_range``\ ","2020-02 (Prague)","|Nothing To Do|","","|ranges|"
"`LWG3375 <https://wg21.link/LWG3375>`__","``decay``\ in ``viewable_range``\ should be ``remove_cvref``\ ","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3377 <https://wg21.link/LWG3377>`__","``elements_view::iterator``\ befriends a specialization of itself","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3379 <https://wg21.link/LWG3379>`__","""``safe``\ "" in several library names is misleading","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3380 <https://wg21.link/LWG3380>`__","``common_type``\ and comparison categories","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3381 <https://wg21.link/LWG3381>`__","``begin``\ and ``data``\ must agree for ``contiguous_range``\ ","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3382 <https://wg21.link/LWG3382>`__","NTTP for ``pair``\ and ``array``\ ","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3383 <https://wg21.link/LWG3383>`__","|sect|\ [time.zone.leap.nonmembers] ``sys_seconds``\ should be replaced with ``seconds``\ ","2020-02 (Prague)","|Complete|","19.0","|chrono|"
"`LWG3384 <https://wg21.link/LWG3384>`__","``transform_view::*sentinel*``\ has an incorrect ``operator-``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3385 <https://wg21.link/LWG3385>`__","``common_iterator``\ is not sufficiently constrained for non-copyable iterators","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3387 <https://wg21.link/LWG3387>`__","|sect|\ [range.reverse.view] ``reverse_view<V>``\ unintentionally requires ``range<const V>``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3388 <https://wg21.link/LWG3388>`__","``view``\ iterator types have ill-formed ``<=>``\ operators","2020-02 (Prague)","|Complete|","16.0","|ranges|"
"`LWG3389 <https://wg21.link/LWG3389>`__","A move-only iterator still does not have a ``counted_iterator``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`LWG3390 <https://wg21.link/LWG3390>`__","``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iterator","2020-02 (Prague)","|Complete|","14.0","|ranges|"
"`LWG3383 <https://wg21.link/LWG3383>`__","|sect|\ [time.zone.leap.nonmembers] ``sys_seconds``\ should be replaced with ``seconds``\ ","2020-02 (Prague)","|Complete|","19.0",""
"`LWG3384 <https://wg21.link/LWG3384>`__","``transform_view::*sentinel*``\ has an incorrect ``operator-``\ ","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3385 <https://wg21.link/LWG3385>`__","``common_iterator``\ is not sufficiently constrained for non-copyable iterators","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3387 <https://wg21.link/LWG3387>`__","|sect|\ [range.reverse.view] ``reverse_view<V>``\ unintentionally requires ``range<const V>``\ ","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3388 <https://wg21.link/LWG3388>`__","``view``\ iterator types have ill-formed ``<=>``\ operators","2020-02 (Prague)","|Complete|","16.0",""
"`LWG3389 <https://wg21.link/LWG3389>`__","A move-only iterator still does not have a ``counted_iterator``\ ","2020-02 (Prague)","|Complete|","15.0",""
"`LWG3390 <https://wg21.link/LWG3390>`__","``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iterator","2020-02 (Prague)","|Complete|","14.0",""
"`LWG3393 <https://wg21.link/LWG3393>`__","Missing/incorrect feature test macro for coroutines","2020-02 (Prague)","|Complete|","14.0",""
"`LWG3395 <https://wg21.link/LWG3395>`__","LWG3395: Definition for three-way comparison needs to be updated (US 152)","2020-02 (Prague)","|Nothing To Do|","","|spaceship|"
"`LWG3395 <https://wg21.link/LWG3395>`__","LWG3395: Definition for three-way comparison needs to be updated (US 152)","2020-02 (Prague)","|Nothing To Do|","",""
"`LWG3396 <https://wg21.link/LWG3396>`__","Clarify point of reference for ``source_location::current()``\ (DE 169)","2020-02 (Prague)","|Nothing To Do|","16.0",""
"`LWG3397 <https://wg21.link/LWG3397>`__","``ranges::basic_istream_view::iterator``\ should not provide ``iterator_category``\ ","2020-02 (Prague)","|Complete|","16.0","|ranges|"
"`LWG3398 <https://wg21.link/LWG3398>`__","``tuple_element_t``\ is also wrong for ``const subrange``\ ","2020-02 (Prague)","|Complete|","14.0","|ranges|"
"`LWG3397 <https://wg21.link/LWG3397>`__","``ranges::basic_istream_view::iterator``\ should not provide ``iterator_category``\ ","2020-02 (Prague)","|Complete|","16.0",""
"`LWG3398 <https://wg21.link/LWG3398>`__","``tuple_element_t``\ is also wrong for ``const subrange``\ ","2020-02 (Prague)","|Complete|","14.0",""
"","","","","",""
"`LWG3446 <https://wg21.link/LWG3446>`__","``indirectly_readable_traits``\ ambiguity for types with both ``value_type``\ and ``element_type``\ ","2020-11 (Virtual)","|Complete|","13.0","|ranges|"
"`LWG3446 <https://wg21.link/LWG3446>`__","``indirectly_readable_traits``\ ambiguity for types with both ``value_type``\ and ``element_type``\ ","2020-11 (Virtual)","|Complete|","13.0",""

1 Issue # Issue Name Meeting Status First released version Labels Notes
2 `LWG2070 <https://wg21.link/LWG2070>`__ ``allocate_shared``\ should use ``allocator_traits<A>::construct``\ 2017-07 (Toronto) |Nothing To Do| [#note-LWG2070]_ |Nothing To Do| Resolved by `P0674R1 <https://wg21.link/P0674R1>`__
3 `LWG2444 <https://wg21.link/LWG2444>`__ Inconsistent complexity for ``std::sort_heap``\ 2017-07 (Toronto) |Nothing To Do|
4 `LWG2593 <https://wg21.link/LWG2593>`__ Moved-from state of Allocators 2017-07 (Toronto)
5 `LWG2597 <https://wg21.link/LWG2597>`__ ``std::log``\ misspecified for complex numbers 2017-07 (Toronto)
94 `LWG2183 <https://wg21.link/LWG2183>`__ Muddled allocator requirements for ``match_results``\ constructors 2018-11 (San Diego) |Complete|
95 `LWG2184 <https://wg21.link/LWG2184>`__ Muddled allocator requirements for ``match_results``\ assignments 2018-11 (San Diego) |Complete|
96 `LWG2412 <https://wg21.link/LWG2412>`__ ``promise::set_value()``\ and ``promise::get_future()``\ should not race 2018-11 (San Diego)
97 `LWG2499 <https://wg21.link/LWG2499>`__ ``operator>>(basic_istream&, CharT*)``\ makes it hard to avoid buffer overflows 2018-11 (San Diego) |Nothing To Do| [#note-LWG2499]_ |Nothing To Do| Resolved by `P0487R1 <https://wg21.link/P0487R1>`__
98 `LWG2682 <https://wg21.link/LWG2682>`__ ``filesystem::copy()``\ won't create a symlink to a directory 2018-11 (San Diego) |Nothing To Do|
99 `LWG2697 <https://wg21.link/LWG2697>`__ [concurr.ts] Behavior of ``future/shared_future``\ unwrapping constructor when given an invalid ``future``\ 2018-11 (San Diego)
100 `LWG2797 <https://wg21.link/LWG2797>`__ Trait precondition violations 2018-11 (San Diego) |Nothing To Do| [#note-LWG2797]_ |Nothing To Do| Resolved by `P1285R0 <https://wg21.link/P1285R0>`__
101 `LWG2936 <https://wg21.link/LWG2936>`__ Path comparison is defined in terms of the generic format 2018-11 (San Diego) |Complete|
102 `LWG2943 <https://wg21.link/LWG2943>`__ Problematic specification of the wide version of ``basic_filebuf::open``\ 2018-11 (San Diego) |Nothing To Do|
103 `LWG2960 <https://wg21.link/LWG2960>`__ [fund.ts.v3] ``nonesuch``\ is insufficiently useless 2018-11 (San Diego) |Complete|
104 `LWG2995 <https://wg21.link/LWG2995>`__ ``basic_stringbuf``\ default constructor forbids it from using SSO capacity 2018-11 (San Diego) |Complete| 20.0
105 `LWG2996 <https://wg21.link/LWG2996>`__ Missing rvalue overloads for ``shared_ptr``\ operations 2018-11 (San Diego) |Complete| 17.0
106 `LWG3008 <https://wg21.link/LWG3008>`__ ``make_shared``\ (sub)object destruction semantics are not specified 2018-11 (San Diego) |Complete| 16.0
107 `LWG3022 <https://wg21.link/LWG3022>`__ ``is_convertible<derived*, base*>``\ may lead to ODR 2018-11 (San Diego) |Nothing To Do| [#note-LWG3022]_ |Nothing To Do| Resolved by `P1285R0 <https://wg21.link/P1285R0>`__
108 `LWG3025 <https://wg21.link/LWG3025>`__ Map-like container deduction guides should use ``pair<Key, T>``\ , not ``pair<const Key, T>``\ 2018-11 (San Diego) |Complete|
109 `LWG3031 <https://wg21.link/LWG3031>`__ Algorithms and predicates with non-const reference arguments 2018-11 (San Diego)
110 `LWG3037 <https://wg21.link/LWG3037>`__ ``polymorphic_allocator``\ and incomplete types 2018-11 (San Diego) |Complete| 16.0
120 `LWG3130 <https://wg21.link/LWG3130>`__ |sect|\ [input.output] needs many ``addressof``\ 2018-11 (San Diego) |Complete| 20.0
121 `LWG3131 <https://wg21.link/LWG3131>`__ ``addressof``\ all the things 2018-11 (San Diego)
122 `LWG3132 <https://wg21.link/LWG3132>`__ Library needs to ban macros named ``expects``\ or ``ensures``\ 2018-11 (San Diego) |Nothing To Do|
123 `LWG3134 <https://wg21.link/LWG3134>`__ [fund.ts.v3] LFTSv3 contains extraneous [meta] variable templates that should have been deleted by P09961 2018-11 (San Diego) |Nothing To Do| [#note-LWG3134]_ |Nothing To Do| Resolved by `P1210R0 <https://wg21.link/P1210R0>`__
124 `LWG3137 <https://wg21.link/LWG3137>`__ Header for ``__cpp_lib_to_chars``\ 2018-11 (San Diego) |Complete|
125 `LWG3140 <https://wg21.link/LWG3140>`__ ``COMMON_REF``\ is unimplementable as specified 2018-11 (San Diego) |Nothing To Do|
126 `LWG3145 <https://wg21.link/LWG3145>`__ ``file_clock``\ breaks ABI for C++17 implementations 2018-11 (San Diego) |Complete|
138 `LWG3119 <https://wg21.link/LWG3119>`__ Program-definedness of closure types 2019-02 (Kona) |Nothing To Do|
139 `LWG3133 <https://wg21.link/LWG3133>`__ Modernizing numeric type requirements 2019-02 (Kona)
140 `LWG3144 <https://wg21.link/LWG3144>`__ ``span``\ does not have a ``const_pointer``\ typedef 2019-02 (Kona) |Complete|
141 `LWG3173 <https://wg21.link/LWG3173>`__ Enable CTAD for ``ref-view``\ 2019-02 (Kona) |Complete| 15.0 |ranges|
142 `LWG3179 <https://wg21.link/LWG3179>`__ ``subrange``\ should always model ``Range``\ 2019-02 (Kona) |Nothing To Do| |ranges|
143 `LWG3180 <https://wg21.link/LWG3180>`__ Inconsistently named return type for ``ranges::minmax_element``\ 2019-02 (Kona) |Complete| 15.0 |ranges|
144 `LWG3182 <https://wg21.link/LWG3182>`__ Specification of ``Same``\ could be clearer 2019-02 (Kona) |Complete| 15.0
145
146 `LWG2899 <https://wg21.link/LWG2899>`__ ``is_(nothrow_)move_constructible``\ and ``tuple``\ , ``optional``\ and ``unique_ptr``\ 2019-07 (Cologne)
147 `LWG3055 <https://wg21.link/LWG3055>`__ ``path::operator+=(*single-character*)``\ misspecified 2019-07 (Cologne) |Complete| 7.0
148 `LWG3158 <https://wg21.link/LWG3158>`__ ``tuple(allocator_arg_t, const Alloc&)``\ should be conditionally explicit 2019-07 (Cologne) |Complete| 10.0
149 `LWG3169 <https://wg21.link/LWG3169>`__ ``ranges``\ permutation generators discard useful information 2019-07 (Cologne) |Complete| 15.0 |ranges|
150 `LWG3183 <https://wg21.link/LWG3183>`__ Normative permission to specialize Ranges variable templates 2019-07 (Cologne) |Nothing To Do| |ranges|
151 `LWG3184 <https://wg21.link/LWG3184>`__ Inconsistencies in ``bind_front``\ wording 2019-07 (Cologne) |Complete| 13.0
152 `LWG3185 <https://wg21.link/LWG3185>`__ Uses-allocator construction functions missing ``constexpr``\ and ``noexcept``\ 2019-07 (Cologne) |Complete| 16.0
153 `LWG3186 <https://wg21.link/LWG3186>`__ ``ranges``\ removal, partition, and ``partial_sort_copy``\ algorithms discard useful information 2019-07 (Cologne) |Complete| 15.0 |ranges|
154 `LWG3187 <https://wg21.link/LWG3187>`__ `P0591R4 <https://wg21.link/p0591r4>`__ reverted DR 2586 fixes to ``scoped_allocator_adaptor::construct()``\ 2019-07 (Cologne)
155 `LWG3191 <https://wg21.link/LWG3191>`__ ``std::ranges::shuffle``\ synopsis does not match algorithm definition 2019-07 (Cologne) |Complete| 15.0 |ranges|
156 `LWG3196 <https://wg21.link/LWG3196>`__ ``std::optional<T>``\ is ill-formed is ``T``\ is an array 2019-07 (Cologne) |Complete|
157 `LWG3198 <https://wg21.link/LWG3198>`__ Bad constraint on ``std::span::span()``\ 2019-07 (Cologne) |Complete|
158 `LWG3199 <https://wg21.link/LWG3199>`__ ``istream >> bitset<0>``\ fails 2019-07 (Cologne) |Complete| 10.0
162 `LWG3209 <https://wg21.link/LWG3209>`__ Expression in ``year::ok()``\ returns clause is ill-formed 2019-07 (Cologne) |Complete|
163
164 `LWG3231 <https://wg21.link/LWG3231>`__ ``year_month_day_last::day``\ specification does not cover ``!ok()``\ values 2019-11 (Belfast) |Nothing To Do|
165 `LWG3225 <https://wg21.link/LWG3225>`__ ``zoned_time``\ converting constructor shall not be ``noexcept``\ 2019-11 (Belfast) |Complete| 19.0 |chrono|
166 `LWG3190 <https://wg21.link/LWG3190>`__ ``std::allocator::allocate``\ sometimes returns too little storage 2019-11 (Belfast) |Complete| 14.0
167 `LWG3218 <https://wg21.link/LWG3218>`__ Modifier for ``%d``\ parse flag does not match POSIX and ``format``\ specification 2019-11 (Belfast) |chrono| |format|
168 `LWG3224 <https://wg21.link/LWG3224>`__ ``zoned_time``\ constructor from ``TimeZonePtr``\ does not specify initialization of ``tp_``\ 2019-11 (Belfast) |Complete| 19.0 |chrono|
169 `LWG3230 <https://wg21.link/LWG3230>`__ Format specifier ``%y/%Y``\ is missing locale alternative versions 2019-11 (Belfast) |Complete| 16.0 |chrono| |format|
170 `LWG3232 <https://wg21.link/LWG3232>`__ Inconsistency in ``zoned_time``\ deduction guides 2019-11 (Belfast) |Complete| 19.0 |chrono|
171 `LWG3222 <https://wg21.link/LWG3222>`__ P0574R1 introduced preconditions on non-existent parameters 2019-11 (Belfast)
172 `LWG3221 <https://wg21.link/LWG3221>`__ Result of ``year_month``\ arithmetic with ``months``\ is ambiguous 2019-11 (Belfast) |Complete| 8.0
173 `LWG3235 <https://wg21.link/LWG3235>`__ ``parse``\ manipulator without abbreviation is not callable 2019-11 (Belfast)
174 `LWG3246 <https://wg21.link/LWG3246>`__ LWG3246: What are the constraints on the template parameter of `basic_format_arg`? 2019-11 (Belfast) |Nothing To Do| |format|
175 `LWG3253 <https://wg21.link/LWG3253>`__ ``basic_syncbuf::basic_syncbuf()``\ should not be explicit 2019-11 (Belfast)
176 `LWG3245 <https://wg21.link/LWG3245>`__ Unnecessary restriction on ``'%p'``\ parse specifier 2019-11 (Belfast) |chrono|
177 `LWG3244 <https://wg21.link/LWG3244>`__ Constraints for ``Source``\ in |sect|\ [fs.path.req] insufficiently constrainty 2019-11 (Belfast)
178 `LWG3241 <https://wg21.link/LWG3241>`__ ``chrono-spec``\ grammar ambiguity in |sect|\ [time.format] 2019-11 (Belfast) |Complete| 16.0 |chrono| |format|
179 `LWG3257 <https://wg21.link/LWG3257>`__ Missing feature testing macro update from P0858 2019-11 (Belfast) |Complete| 12.0
180 `LWG3256 <https://wg21.link/LWG3256>`__ Feature testing macro for ``constexpr``\ algorithms 2019-11 (Belfast) |Complete| 13.0
181 `LWG3273 <https://wg21.link/LWG3273>`__ Specify ``weekday_indexed``\ to range of ``[0, 7]``\ 2019-11 (Belfast) |Complete| 16.0 |chrono|
182 `LWG3070 <https://wg21.link/LWG3070>`__ ``path::lexically_relative``\ causes surprising results if a filename can also be a *root-name* 2019-11 (Belfast)
183 `LWG3266 <https://wg21.link/LWG3266>`__ ``to_chars(bool)``\ should be deleted 2019-11 (Belfast) |Complete| 14.0
184 `LWG3272 <https://wg21.link/LWG3272>`__ ``%I%p``\ should parse/format ``duration``\ since midnight 2019-11 (Belfast) |chrono| |format|
185 `LWG3259 <https://wg21.link/LWG3259>`__ The definition of *constexpr iterators* should be adjusted 2019-11 (Belfast) |Nothing To Do|
186 `LWG3103 <https://wg21.link/LWG3103>`__ Errors in taking subview of ``span``\ should be ill-formed where possible 2019-11 (Belfast) |Complete| 11.0
187 `LWG3274 <https://wg21.link/LWG3274>`__ Missing feature test macro for ``<span>``\ 2019-11 (Belfast) |Complete| 11.0
188 `LWG3276 <https://wg21.link/LWG3276>`__ Class ``split_view::outer_iterator::value_type``\ should inherit from ``view_interface``\ 2019-11 (Belfast) |Complete| 15.0 |ranges|
189 `LWG3277 <https://wg21.link/LWG3277>`__ Pre-increment on prvalues is not a requirement of ``weakly_incrementable``\ 2019-11 (Belfast) |Nothing To Do| |ranges|
190 `LWG3149 <https://wg21.link/LWG3149>`__ ``DefaultConstructible``\ should require default initialization 2019-11 (Belfast) |Complete| 13.0
191
192 `LWG1203 <https://wg21.link/LWG1203>`__ More useful rvalue stream insertion 2020-02 (Prague) |Complete| 12.0
193 `LWG2859 <https://wg21.link/LWG2859>`__ Definition of *reachable* in [ptr.launder] misses pointer arithmetic from pointer-interconvertible object 2020-02 (Prague)
194 `LWG3018 <https://wg21.link/LWG3018>`__ ``shared_ptr``\ of function type 2020-02 (Prague) |Nothing To Do|
195 `LWG3050 <https://wg21.link/LWG3050>`__ Conversion specification problem in ``chrono::duration``\ constructor 2020-02 (Prague) |Complete| 19.0 |chrono|
196 `LWG3141 <https://wg21.link/LWG3141>`__ ``CopyConstructible``\ doesn't preserve source values 2020-02 (Prague) |Nothing To Do|
197 `LWG3150 <https://wg21.link/LWG3150>`__ ``UniformRandomBitGenerator``\ should validate ``min``\ and ``max``\ 2020-02 (Prague) |Complete| 13.0 |ranges|
198 `LWG3175 <https://wg21.link/LWG3175>`__ The ``CommonReference``\ requirement of concept ``SwappableWith``\ is not satisfied in the example 2020-02 (Prague) |Complete| 13.0
199 `LWG3194 <https://wg21.link/LWG3194>`__ ``ConvertibleTo``\ prose does not match code 2020-02 (Prague) |Complete| 13.0
200 `LWG3200 <https://wg21.link/LWG3200>`__ ``midpoint``\ should not constrain ``T``\ is complete 2020-02 (Prague) |Nothing To Do|
201 `LWG3201 <https://wg21.link/LWG3201>`__ ``lerp``\ should be marked as ``noexcept``\ 2020-02 (Prague) |Complete|
202 `LWG3226 <https://wg21.link/LWG3226>`__ ``zoned_time``\ constructor from ``string_view``\ should accept ``zoned_time<Duration2, TimeZonePtr2>``\ 2020-02 (Prague) |Complete| 19.0 |chrono|
203 `LWG3233 <https://wg21.link/LWG3233>`__ Broken requirements for ``shared_ptr``\ converting constructors 2020-02 (Prague) |Complete| 19.0
204 `LWG3237 <https://wg21.link/LWG3237>`__ LWG 3038 and 3190 have inconsistent PRs 2020-02 (Prague) |Complete| 16.0
205 `LWG3238 <https://wg21.link/LWG3238>`__ Insufficiently-defined behavior of ``std::function``\ deduction guides 2020-02 (Prague) |Nothing To Do|
206 `LWG3242 <https://wg21.link/LWG3242>`__ ``std::format``\ : missing rules for ``arg-id``\ in ``width``\ and ``precision``\ 2020-02 (Prague) |Complete| 14.0 |format|
207 `LWG3243 <https://wg21.link/LWG3243>`__ ``std::format``\ and negative zeroes 2020-02 (Prague) |Complete| 14.0 |format|
208 `LWG3247 <https://wg21.link/LWG3247>`__ ``ranges::iter_move``\ should perform ADL-only lookup of ``iter_move``\ 2020-02 (Prague) |Complete| 15.0 |ranges|
209 `LWG3248 <https://wg21.link/LWG3248>`__ ``std::format``\ ``#b``\ , ``#B``\ , ``#o``\ , ``#x``\ , and ``#X``\ presentation types misformat negative numbers 2020-02 (Prague) |Complete| 14.0 |format|
210 `LWG3250 <https://wg21.link/LWG3250>`__ ``std::format``\ : ``#``\ (alternate form) for NaN and inf 2020-02 (Prague) |Complete| 14.0 |format|
211 `LWG3251 <https://wg21.link/LWG3251>`__ Are ``std::format``\ alignment specifiers applied to string arguments? 2020-02 (Prague) |Complete| 14.0 |format|
212 `LWG3252 <https://wg21.link/LWG3252>`__ Parse locale's aware modifiers for commands are not consistent with POSIX spec 2020-02 (Prague) |chrono|
213 `LWG3254 <https://wg21.link/LWG3254>`__ Strike ``stop_token``\ 's ``operator!=``\ 2020-02 (Prague) |Complete| 17.0
214 `LWG3255 <https://wg21.link/LWG3255>`__ ``span``\ 's ``array``\ constructor is too strict 2020-02 (Prague) |Complete|
215 `LWG3260 <https://wg21.link/LWG3260>`__ ``year_month*``\ arithmetic rejects durations convertible to years 2020-02 (Prague) |chrono|
216 `LWG3262 <https://wg21.link/LWG3262>`__ Formatting of negative durations is not specified 2020-02 (Prague) |Complete| 16.0 |chrono| |format|
217 `LWG3264 <https://wg21.link/LWG3264>`__ ``sized_range``\ and ``ranges::size``\ redundantly use ``disable_sized_range``\ 2020-02 (Prague) |Complete| 15.0 |ranges|
218 `LWG3269 <https://wg21.link/LWG3269>`__ Parse manipulators do not specify the result of the extraction from stream 2020-02 (Prague) |chrono|
219 `LWG3270 <https://wg21.link/LWG3270>`__ Parsing and formatting ``%j``\ with ``duration``\ s 2020-02 (Prague) |Partial| |chrono| |format|
220 `LWG3280 <https://wg21.link/LWG3280>`__ View converting constructors can cause constraint recursion and are unneeded 2020-02 (Prague) |Complete| 15.0 |ranges|
221 `LWG3281 <https://wg21.link/LWG3281>`__ Conversion from ``*pair-like*``\ types to ``subrange``\ is a silent semantic promotion 2020-02 (Prague) |Complete| 13.0 |ranges|
222 `LWG3282 <https://wg21.link/LWG3282>`__ ``subrange``\ converting constructor should disallow derived to base conversions 2020-02 (Prague) |Complete| 15.0 |ranges|
223 `LWG3284 <https://wg21.link/LWG3284>`__ ``random_access_iterator``\ semantic constraints accidentally promote difference type using unary negate 2020-02 (Prague) |Nothing To Do| |ranges|
224 `LWG3285 <https://wg21.link/LWG3285>`__ The type of a customization point object shall satisfy ``semiregular``\ 2020-02 (Prague) |Nothing To Do| |ranges|
225 `LWG3286 <https://wg21.link/LWG3286>`__ ``ranges::size``\ is not required to be valid after a call to ``ranges::begin``\ on an input range 2020-02 (Prague) |Complete| 15.0 |ranges|
226 `LWG3291 <https://wg21.link/LWG3291>`__ ``iota_view::iterator``\ has the wrong ``iterator_category``\ 2020-02 (Prague) |Complete| 15.0 |ranges|
227 `LWG3292 <https://wg21.link/LWG3292>`__ ``iota_view``\ is under-constrained 2020-02 (Prague) |Complete| 15.0 |ranges|
228 `LWG3294 <https://wg21.link/LWG3294>`__ ``zoned_time``\ deduction guides misinterprets ``string``\ /``char*``\ 2020-02 (Prague) |Complete| 19.0 |chrono|
229 `LWG3296 <https://wg21.link/LWG3296>`__ Inconsistent default argument for ``basic_regex<>::assign``\ 2020-02 (Prague) |Complete|
230 `LWG3299 <https://wg21.link/LWG3299>`__ Pointers don't need customized iterator behavior 2020-02 (Prague) |Complete| 15.0 |ranges|
231 `LWG3300 <https://wg21.link/LWG3300>`__ Non-array ``ssize``\ overload is underconstrained 2020-02 (Prague) |Nothing To Do|
232 `LWG3301 <https://wg21.link/LWG3301>`__ ``transform_view::iterator``\ has incorrect ``iterator_category``\ 2020-02 (Prague) |Complete| 15.0 |ranges|
233 `LWG3302 <https://wg21.link/LWG3302>`__ Range adaptor objects ``keys``\ and ``values``\ are unspecified 2020-02 (Prague) |Complete| 16.0 |ranges|
234 `LWG3303 <https://wg21.link/LWG3303>`__ Bad "``constexpr``\ " marker for ``destroy/destroy_n``\ 2020-02 (Prague)
235 `LWG3304 <https://wg21.link/LWG3304>`__ Allocate functions of ``std::polymorphic_allocator``\ should require ``[[nodiscard]]``\ 2020-02 (Prague) |Complete| 16.0
236 `LWG3307 <https://wg21.link/LWG3307>`__ ``std::allocator<void>().allocate(n)``\ 2020-02 (Prague) |Complete| 20.0
237 `LWG3310 <https://wg21.link/LWG3310>`__ Replace ``SIZE_MAX``\ with ``numeric_limits<size_t>::max()``\ 2020-02 (Prague) |Complete| 16.0
238 `LWG3313 <https://wg21.link/LWG3313>`__ ``join_view::iterator::operator--``\ is incorrectly constrained 2020-02 (Prague) |Complete| 14.0 |ranges|
239 `LWG3314 <https://wg21.link/LWG3314>`__ Is stream insertion behavior locale dependent when ``Period::type``\ is ``micro``\ ? 2020-02 (Prague) |Complete| 16.0 |chrono|
240 `LWG3315 <https://wg21.link/LWG3315>`__ LWG3315: Correct Allocator Default Behavior 2020-02 (Prague) |Complete|
241 `LWG3316 <https://wg21.link/LWG3316>`__ Correctly define epoch for ``utc_clock``\ / ``utc_timepoint``\ 2020-02 (Prague) |chrono|
242 `LWG3317 <https://wg21.link/LWG3317>`__ Incorrect ``operator<<``\ for floating-point durations 2020-02 (Prague) |chrono|
243 `LWG3318 <https://wg21.link/LWG3318>`__ Clarify whether clocks can represent time before their epoch 2020-02 (Prague) |chrono|
244 `LWG3319 <https://wg21.link/LWG3319>`__ Properly reference specification of IANA time zone database 2020-02 (Prague) |Nothing To Do| |chrono|
245 `LWG3320 <https://wg21.link/LWG3320>`__ ``span::cbegin/cend``\ methods produce different results than ``std::[ranges::]cbegin/cend``\ 2020-02 (Prague) |Complete|
246 `LWG3321 <https://wg21.link/LWG3321>`__ ``uninitialized_construct_using_allocator``\ should use ``construct_at``\ 2020-02 (Prague) |Complete| 16.0
247 `LWG3323 <https://wg21.link/LWG3323>`__ ``*has-tuple-element*``\ helper concept needs ``convertible_to``\ 2020-02 (Prague) |Complete| 16.0 |ranges|
248 `LWG3324 <https://wg21.link/LWG3324>`__ Special-case ``std::strong/weak/partial_order``\ for pointers 2020-02 (Prague) |Complete| 14.0 |spaceship|
249 `LWG3325 <https://wg21.link/LWG3325>`__ Constrain return type of transformation function for ``transform_view``\ 2020-02 (Prague) |Complete| 15.0 |ranges|
250 `LWG3326 <https://wg21.link/LWG3326>`__ ``enable_view``\ has false positives 2020-02 (Prague) |Complete| 15.0 |ranges|
251 `LWG3327 <https://wg21.link/LWG3327>`__ Format alignment specifiers vs. text direction 2020-02 (Prague) |Nothing To Do| |format|
252 `LWG3328 <https://wg21.link/LWG3328>`__ Clarify that ``std::string``\ is not good for UTF-8 2020-02 (Prague) |Nothing To Do|
253 `LWG3329 <https://wg21.link/LWG3329>`__ ``totally_ordered_with``\ both directly and indirectly requires ``common_reference_with``\ 2020-02 (Prague) |Complete| 13.0
254 `LWG3330 <https://wg21.link/LWG3330>`__ Include ``<compare>``\ from most library headers 2020-02 (Prague) |Complete| 13.0 |spaceship|
255 `LWG3331 <https://wg21.link/LWG3331>`__ Define ``totally_ordered/_with``\ in terms of ``partially-ordered-with``\ 2020-02 (Prague) |Complete| 13.0
256 `LWG3332 <https://wg21.link/LWG3332>`__ Issue in |sect|\ [time.format] 2020-02 (Prague) |Complete| 16.0 |chrono| |format|
257 `LWG3334 <https://wg21.link/LWG3334>`__ ``basic_osyncstream``\ move assignment and destruction calls ``basic_syncbuf::emit()``\ twice 2020-02 (Prague) |Complete| 18.0
258 `LWG3335 <https://wg21.link/LWG3335>`__ Resolve C++20 NB comments US 273 and GB 274 2020-02 (Prague) |Complete| 15.0 |ranges|
259 `LWG3338 <https://wg21.link/LWG3338>`__ Rename ``default_constructible``\ to ``default_initializable``\ 2020-02 (Prague) |Complete| 13.0
260 `LWG3340 <https://wg21.link/LWG3340>`__ Formatting functions should throw on argument/format string mismatch in |sect|\ [format.functions] 2020-02 (Prague) |Complete| 14.0 |format|
261 `LWG3346 <https://wg21.link/LWG3346>`__ ``pair``\ and ``tuple``\ copy and move constructor have backwards specification 2020-02 (Prague) |Nothing To Do|
262 `LWG3347 <https://wg21.link/LWG3347>`__ ``std::pair<T, U>``\ now requires ``T``\ and ``U``\ to be less-than-comparable 2020-02 (Prague) |Complete| 17.0
263 `LWG3348 <https://wg21.link/LWG3348>`__ ``__cpp_lib_unwrap_ref``\ in wrong header 2020-02 (Prague) |Complete| 12.0
264 `LWG3349 <https://wg21.link/LWG3349>`__ Missing ``__cpp_lib_constexpr_complex``\ for P0415R1 2020-02 (Prague) |Complete| 16.0
265 `LWG3350 <https://wg21.link/LWG3350>`__ Simplify return type of ``lexicographical_compare_three_way``\ 2020-02 (Prague) |Complete| 17.0 |spaceship|
266 `LWG3351 <https://wg21.link/LWG3351>`__ ``ranges::enable_safe_range``\ should not be constrained 2020-02 (Prague) |Complete| 15.0 |ranges|
267 `LWG3352 <https://wg21.link/LWG3352>`__ ``strong_equality``\ isn't a thing 2020-02 (Prague) |Complete| 19.0 |spaceship|
268 `LWG3354 <https://wg21.link/LWG3354>`__ ``has_strong_structural_equality``\ has a meaningless definition 2020-02 (Prague) |Nothing To Do| |spaceship|
269 `LWG3355 <https://wg21.link/LWG3355>`__ The memory algorithms should support move-only input iterators introduced by P1207 2020-02 (Prague) |Complete| 15.0 |ranges|
270 `LWG3356 <https://wg21.link/LWG3356>`__ ``__cpp_lib_nothrow_convertible``\ should be ``__cpp_lib_is_nothrow_convertible``\ 2020-02 (Prague) |Complete| 12.0
271 `LWG3358 <https://wg21.link/LWG3358>`__ |sect|\ [span.cons] is mistaken that ``to_address``\ can throw 2020-02 (Prague) |Complete| 17.0
272 `LWG3359 <https://wg21.link/LWG3359>`__ ``<chrono>``\ leap second support should allow for negative leap seconds 2020-02 (Prague) |In Progress| |chrono|
273 `LWG3360 <https://wg21.link/LWG3360>`__ ``three_way_comparable_with``\ is inconsistent with similar concepts 2020-02 (Prague) |Nothing To Do| |spaceship|
274 `LWG3362 <https://wg21.link/LWG3362>`__ Strike ``stop_source``\ 's ``operator!=``\ 2020-02 (Prague) |Complete| 17.0
275 `LWG3363 <https://wg21.link/LWG3363>`__ ``drop_while_view``\ should opt-out of ``sized_range``\ 2020-02 (Prague) |Nothing To Do| |ranges|
276 `LWG3364 <https://wg21.link/LWG3364>`__ Initialize data members of ranges and their iterators 2020-02 (Prague) |Complete| 16.0 |ranges|
277 `LWG3367 <https://wg21.link/LWG3367>`__ Integer-class conversions should not throw 2020-02 (Prague) |Nothing To Do|
278 `LWG3369 <https://wg21.link/LWG3369>`__ ``span``\ 's deduction-guide for built-in arrays doesn't work 2020-02 (Prague) |Complete| 14.0
279 `LWG3371 <https://wg21.link/LWG3371>`__ ``visit_format_arg``\ and ``make_format_args``\ are not hidden friends 2020-02 (Prague) |Complete| 14.0 |format|
280 `LWG3372 <https://wg21.link/LWG3372>`__ ``vformat_to``\ should not try to deduce ``Out``\ twice 2020-02 (Prague) |Complete| 14.0 |format|
281 `LWG3373 <https://wg21.link/LWG3373>`__ ``{to,from}_chars_result``\ and ``format_to_n_result``\ need the "we really mean what we say" wording 2020-02 (Prague) |Complete| 14.0 |format|
282 `LWG3374 <https://wg21.link/LWG3374>`__ P0653 + P1006 should have made the other ``std::to_address``\ overload ``constexpr``\ 2020-02 (Prague) |Complete| 12.0
283 `LWG3375 <https://wg21.link/LWG3375>`__ ``decay``\ in ``viewable_range``\ should be ``remove_cvref``\ 2020-02 (Prague) |Complete| 15.0 |ranges|
284 `LWG3377 <https://wg21.link/LWG3377>`__ ``elements_view::iterator``\ befriends a specialization of itself 2020-02 (Prague) |Nothing To Do| |ranges|
285 `LWG3379 <https://wg21.link/LWG3379>`__ "``safe``\ " in several library names is misleading 2020-02 (Prague) |Complete| 15.0 |ranges|
286 `LWG3380 <https://wg21.link/LWG3380>`__ ``common_type``\ and comparison categories 2020-02 (Prague) |Complete| 15.0 |spaceship|
287 `LWG3381 <https://wg21.link/LWG3381>`__ ``begin``\ and ``data``\ must agree for ``contiguous_range``\ 2020-02 (Prague) |Nothing To Do| |ranges|
288 `LWG3382 <https://wg21.link/LWG3382>`__ NTTP for ``pair``\ and ``array``\ 2020-02 (Prague) |Nothing To Do|
289 `LWG3383 <https://wg21.link/LWG3383>`__ |sect|\ [time.zone.leap.nonmembers] ``sys_seconds``\ should be replaced with ``seconds``\ 2020-02 (Prague) |Complete| 19.0 |chrono|
290 `LWG3384 <https://wg21.link/LWG3384>`__ ``transform_view::*sentinel*``\ has an incorrect ``operator-``\ 2020-02 (Prague) |Complete| 15.0 |ranges|
291 `LWG3385 <https://wg21.link/LWG3385>`__ ``common_iterator``\ is not sufficiently constrained for non-copyable iterators 2020-02 (Prague) |Complete| 15.0 |ranges|
292 `LWG3387 <https://wg21.link/LWG3387>`__ |sect|\ [range.reverse.view] ``reverse_view<V>``\ unintentionally requires ``range<const V>``\ 2020-02 (Prague) |Complete| 15.0 |ranges|
293 `LWG3388 <https://wg21.link/LWG3388>`__ ``view``\ iterator types have ill-formed ``<=>``\ operators 2020-02 (Prague) |Complete| 16.0 |ranges|
294 `LWG3389 <https://wg21.link/LWG3389>`__ A move-only iterator still does not have a ``counted_iterator``\ 2020-02 (Prague) |Complete| 15.0 |ranges|
295 `LWG3390 <https://wg21.link/LWG3390>`__ ``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iterator 2020-02 (Prague) |Complete| 14.0 |ranges|
296 `LWG3393 <https://wg21.link/LWG3393>`__ Missing/incorrect feature test macro for coroutines 2020-02 (Prague) |Complete| 14.0
297 `LWG3395 <https://wg21.link/LWG3395>`__ LWG3395: Definition for three-way comparison needs to be updated (US 152) 2020-02 (Prague) |Nothing To Do| |spaceship|
298 `LWG3396 <https://wg21.link/LWG3396>`__ Clarify point of reference for ``source_location::current()``\ (DE 169) 2020-02 (Prague) |Nothing To Do| 16.0
299 `LWG3397 <https://wg21.link/LWG3397>`__ ``ranges::basic_istream_view::iterator``\ should not provide ``iterator_category``\ 2020-02 (Prague) |Complete| 16.0 |ranges|
300 `LWG3398 <https://wg21.link/LWG3398>`__ ``tuple_element_t``\ is also wrong for ``const subrange``\ 2020-02 (Prague) |Complete| 14.0 |ranges|
301
302 `LWG3446 <https://wg21.link/LWG3446>`__ ``indirectly_readable_traits``\ ambiguity for types with both ``value_type``\ and ``element_type``\ 2020-11 (Virtual) |Complete| 13.0 |ranges|

View File

@ -1,4 +1,4 @@
"Paper #","Paper Name","Meeting","Status","First released version","Labels"
"Paper #","Paper Name","Meeting","Status","First released version","Notes"
"`P0463R1 <https://wg21.link/P0463R1>`__","Endian just Endian","2017-07 (Toronto)","|Complete|","7.0",""
"`P0674R1 <https://wg21.link/P0674R1>`__","Extending make_shared to Support Arrays","2017-07 (Toronto)","|Complete|","15.0",""
"","","","","",""
@ -18,29 +18,29 @@
"`P0777R1 <https://wg21.link/P0777R1>`__","Treating Unnecessary ``decay``\ ","2017-11 (Albuquerque)","|Complete|","7.0",""
"","","","","",""
"`P0122R7 <https://wg21.link/P0122R7>`__","<span>","2018-03 (Jacksonville)","|Complete|","7.0",""
"`P0355R7 <https://wg21.link/P0355R7>`__","Extending chrono to Calendars and Time Zones","2018-03 (Jacksonville)","|Partial| [#note-P0355]_","",""
"`P0355R7 <https://wg21.link/P0355R7>`__","Extending chrono to Calendars and Time Zones","2018-03 (Jacksonville)","|Partial|","","See the `Github issue <https://github.com/llvm/llvm-project/issues/99982>`__ for detailed status"
"`P0551R3 <https://wg21.link/P0551R3>`__","Thou Shalt Not Specialize ``std``\ Function Templates!","2018-03 (Jacksonville)","|Complete|","11.0",""
"`P0753R2 <https://wg21.link/P0753R2>`__","Manipulators for C++ Synchronized Buffered Ostream","2018-03 (Jacksonville)","","",""
"`P0754R2 <https://wg21.link/P0754R2>`__","<version>","2018-03 (Jacksonville)","|Complete|","7.0",""
"`P0809R0 <https://wg21.link/P0809R0>`__","Comparing Unordered Containers","2018-03 (Jacksonville)","|Nothing To Do|","",""
"`P0858R0 <https://wg21.link/P0858R0>`__","Constexpr iterator requirements","2018-03 (Jacksonville)","|Complete|","12.0",""
"`P0905R1 <https://wg21.link/P0905R1>`__","Symmetry for spaceship","2018-03 (Jacksonville)","|Complete|","7.0","|spaceship|"
"`P0966R1 <https://wg21.link/P0966R1>`__","``string::reserve``\ Should Not Shrink","2018-03 (Jacksonville)","|Complete| [#note-P0966]_","12.0",""
"`P0905R1 <https://wg21.link/P0905R1>`__","Symmetry for spaceship","2018-03 (Jacksonville)","|Complete|","7.0",""
"`P0966R1 <https://wg21.link/P0966R1>`__","``string::reserve``\ Should Not Shrink","2018-03 (Jacksonville)","|Complete|","12.0","It was previously erroneously marked as complete in version 8.0. See `bug 45368 <https://llvm.org/PR45368>`__"
"","","","","",""
"`P0019R8 <https://wg21.link/P0019R8>`__","Atomic Ref","2018-06 (Rapperswil)","|Complete|","19.0",""
"`P0458R2 <https://wg21.link/P0458R2>`__","Checking for Existence of an Element in Associative Containers","2018-06 (Rapperswil)","|Complete|","13.0",""
"`P0475R1 <https://wg21.link/P0475R1>`__","LWG 2511: guaranteed copy elision for piecewise construction","2018-06 (Rapperswil)","|Complete|","",""
"`P0476R2 <https://wg21.link/P0476R2>`__","Bit-casting object representations","2018-06 (Rapperswil)","|Complete|","14.0",""
"`P0528R3 <https://wg21.link/P0528R3>`__","The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange","2018-06 (Rapperswil)","","",""
"`P0542R5 <https://wg21.link/P0542R5>`__","Support for contract based programming in C++","2018-06 (Rapperswil)","|Nothing To Do| [#note-P0542]_","n/a",""
"`P0542R5 <https://wg21.link/P0542R5>`__","Support for contract based programming in C++","2018-06 (Rapperswil)","|Nothing To Do|","n/a","Pulled at the 2019-07 meeting in Cologne"
"`P0556R3 <https://wg21.link/P0556R3>`__","Integral power-of-2 operations","2018-06 (Rapperswil)","|Complete|","9.0",""
"`P0619R4 <https://wg21.link/P0619R4>`__","Reviewing Deprecated Facilities of C++17 for C++20","2018-06 (Rapperswil)","|Partial| [#note-P0619]_","",""
"`P0619R4 <https://wg21.link/P0619R4>`__","Reviewing Deprecated Facilities of C++17 for C++20","2018-06 (Rapperswil)","|Partial|","","Only sections D.7, D.8, D.9, D.10, D.11 and D.13 are implemented. Sections D.4 and D.12 remain undone."
"`P0646R1 <https://wg21.link/P0646R1>`__","Improving the Return Value of Erase-Like Algorithms","2018-06 (Rapperswil)","|Complete|","10.0",""
"`P0722R3 <https://wg21.link/P0722R3>`__","Efficient sized delete for variable sized classes","2018-06 (Rapperswil)","|Complete|","9.0",""
"`P0758R1 <https://wg21.link/P0758R1>`__","Implicit conversion traits and utility functions","2018-06 (Rapperswil)","|Complete|","",""
"`P0759R1 <https://wg21.link/P0759R1>`__","fpos Requirements","2018-06 (Rapperswil)","|Complete|","11.0",""
"`P0769R2 <https://wg21.link/P0769R2>`__","Add shift to <algorithm>","2018-06 (Rapperswil)","|Complete|","12.0",""
"`P0788R3 <https://wg21.link/P0788R3>`__","Standard Library Specification in a Concepts and Contracts World","2018-06 (Rapperswil)","|Nothing To Do| [#note-P0788]_","n/a",""
"`P0788R3 <https://wg21.link/P0788R3>`__","Standard Library Specification in a Concepts and Contracts World","2018-06 (Rapperswil)","|Nothing To Do|","n/a","Pulled at the 2019-07 meeting in Cologne"
"`P0879R0 <https://wg21.link/P0879R0>`__","Constexpr for swap and swap related functions Also resolves LWG issue 2800.","2018-06 (Rapperswil)","|Complete|","13.0",""
"`P0887R1 <https://wg21.link/P0887R1>`__","The identity metafunction","2018-06 (Rapperswil)","|Complete|","8.0",""
"`P0892R2 <https://wg21.link/P0892R2>`__","explicit(bool)","2018-06 (Rapperswil)","","",""
@ -49,20 +49,20 @@
"`P0941R2 <https://wg21.link/P0941R2>`__","Integrating feature-test macros into the C++ WD","2018-06 (Rapperswil)","|In Progress|","",""
"`P1023R0 <https://wg21.link/P1023R0>`__","constexpr comparison operators for std::array","2018-06 (Rapperswil)","|Complete|","8.0",""
"`P1025R1 <https://wg21.link/P1025R1>`__","Update The Reference To The Unicode Standard","2018-06 (Rapperswil)","","",""
"`P1120R0 <https://wg21.link/P1120R0>`__","Consistency improvements for <=> and other comparison operators","2018-06 (Rapperswil)","","","|spaceship|"
"`P1120R0 <https://wg21.link/P1120R0>`__","Consistency improvements for <=> and other comparison operators","2018-06 (Rapperswil)","","",""
"","","","","",""
"`P0318R1 <https://wg21.link/P0318R1>`__","unwrap_ref_decay and unwrap_reference","2018-11 (San Diego)","|Complete|","8.0",""
"`P0356R5 <https://wg21.link/P0356R5>`__","Simplified partial function application","2018-11 (San Diego)","|Complete|","13.0",""
"`P0357R3 <https://wg21.link/P0357R3>`__","reference_wrapper for incomplete types","2018-11 (San Diego)","|Complete|","8.0",""
"`P0482R6 <https://wg21.link/P0482R6>`__","char8_t: A type for UTF-8 characters and strings","2018-11 (San Diego)","|Complete|","16.0",""
"`P0487R1 <https://wg21.link/P0487R1>`__","Fixing ``operator>>(basic_istream&, CharT*)``\ (LWG 2499)","2018-11 (San Diego)","|Complete|","8.0",""
"`P0591R4 <https://wg21.link/P0591R4>`__","Utility functions to implement uses-allocator construction","2018-11 (San Diego)","|Partial| [#note-P0591]_","",""
"`P0591R4 <https://wg21.link/P0591R4>`__","Utility functions to implement uses-allocator construction","2018-11 (San Diego)","|Partial|","","The changes in [mem.poly.allocator.mem] are missing"
"`P0595R2 <https://wg21.link/P0595R2>`__","std::is_constant_evaluated()","2018-11 (San Diego)","|Complete|","9.0",""
"`P0602R4 <https://wg21.link/P0602R4>`__","variant and optional should propagate copy/move triviality","2018-11 (San Diego)","|Complete|","8.0",""
"`P0608R3 <https://wg21.link/P0608R3>`__","A sane variant converting constructor","2018-11 (San Diego)","|Complete|","9.0",""
"`P0655R1 <https://wg21.link/P0655R1>`__","visit<R>: Explicit Return Type for visit","2018-11 (San Diego)","|Complete|","12.0",""
"`P0771R1 <https://wg21.link/P0771R1>`__","std::function move constructor should be noexcept","2018-11 (San Diego)","|Complete|","6.0",""
"`P0896R4 <https://wg21.link/P0896R4>`__","The One Ranges Proposal","2018-11 (San Diego)","|Complete|","15.0","|ranges|"
"`P0896R4 <https://wg21.link/P0896R4>`__","The One Ranges Proposal","2018-11 (San Diego)","|Complete|","15.0",""
"`P0899R1 <https://wg21.link/P0899R1>`__","P0899R1 - LWG 3016 is not a defect","2018-11 (San Diego)","|Nothing To Do|","",""
"`P0919R3 <https://wg21.link/P0919R3>`__","Heterogeneous lookup for unordered containers","2018-11 (San Diego)","|Complete|","12.0",""
"`P0972R0 <https://wg21.link/P0972R0>`__","<chrono> ``zero()``\ , ``min()``\ , and ``max()``\ should be noexcept","2018-11 (San Diego)","|Complete|","8.0",""
@ -85,12 +85,12 @@
"`P0340R3 <https://wg21.link/P0340R3>`__","Making std::underlying_type SFINAE-friendly","2019-02 (Kona)","|Complete|","9.0",""
"`P0738R2 <https://wg21.link/P0738R2>`__","I Stream, You Stream, We All Stream for istream_iterator","2019-02 (Kona)","","",""
"`P0811R3 <https://wg21.link/P0811R3>`__","Well-behaved interpolation for numbers and pointers","2019-02 (Kona)","|Complete|","9.0",""
"`P0920R2 <https://wg21.link/P0920R2>`__","Precalculated hash values in lookup","2019-02 (Kona)","|Nothing To Do| [#note-P0920]_","",""
"`P0920R2 <https://wg21.link/P0920R2>`__","Precalculated hash values in lookup","2019-02 (Kona)","|Nothing To Do|","","Reverted by `P1661 <https://wg21.link/P1661>`__"
"`P1001R2 <https://wg21.link/P1001R2>`__","Target Vectorization Policies from Parallelism V2 TS to C++20","2019-02 (Kona)","|Complete|","17.0",""
"`P1024R3 <https://wg21.link/P1024R3>`__","Usability Enhancements for std::span","2019-02 (Kona)","|Complete|","9.0",""
"`P1164R1 <https://wg21.link/P1164R1>`__","Make create_directory() Intuitive","2019-02 (Kona)","|Complete|","12.0",""
"`P1227R2 <https://wg21.link/P1227R2>`__","Signed ssize() functions, unsigned size() functions","2019-02 (Kona)","|Complete|","9.0",""
"`P1252R2 <https://wg21.link/P1252R2>`__","Ranges Design Cleanup","2019-02 (Kona)","|Complete|","15.0","|ranges|"
"`P1252R2 <https://wg21.link/P1252R2>`__","Ranges Design Cleanup","2019-02 (Kona)","|Complete|","15.0",""
"`P1286R2 <https://wg21.link/P1286R2>`__","Contra CWG DR1778","2019-02 (Kona)","","",""
"`P1357R1 <https://wg21.link/P1357R1>`__","Traits for [Un]bounded Arrays","2019-02 (Kona)","|Complete|","9.0",""
"`P1458R1 <https://wg21.link/P1458R1>`__","Mandating the Standard Library: Clause 16 - Language support library","2019-02 (Kona)","|Complete|","9.0",""
@ -104,45 +104,45 @@
"`P0466R5 <https://wg21.link/P0466R5>`__","Layout-compatibility and Pointer-interconvertibility Traits","2019-07 (Cologne)","","",""
"`P0553R4 <https://wg21.link/P0553R4>`__","Bit operations","2019-07 (Cologne)","|Complete|","9.0",""
"`P0631R8 <https://wg21.link/P0631R8>`__","Math Constants","2019-07 (Cologne)","|Complete|","11.0",""
"`P0645R10 <https://wg21.link/P0645R10>`__","Text Formatting","2019-07 (Cologne)","|Complete| [#note-P0645]_","14.0",""
"`P0660R10 <https://wg21.link/P0660R10>`__","Stop Token and Joining Thread, Rev 10.","2019-07 (Cologne)","|Complete| [#note-P0660]_","18.0",""
"`P0645R10 <https://wg21.link/P0645R10>`__","Text Formatting","2019-07 (Cologne)","|Complete|","14.0","The implementation was complete since LLVM 14, but the feature-test macro was not set until LLVM 19"
"`P0660R10 <https://wg21.link/P0660R10>`__","Stop Token and Joining Thread, Rev 10.","2019-07 (Cologne)","|Complete|","18.0","The paper is implemented but the features are experimental and can be enabled via ``-fexperimental-library``."
"`P0784R7 <https://wg21.link/P0784R7>`__","More constexpr containers","2019-07 (Cologne)","|Complete|","12.0",""
"`P0980R1 <https://wg21.link/P0980R1>`__","Making std::string constexpr","2019-07 (Cologne)","|Complete|","15.0",""
"`P1004R2 <https://wg21.link/P1004R2>`__","Making std::vector constexpr","2019-07 (Cologne)","|Complete|","15.0",""
"`P1035R7 <https://wg21.link/P1035R7>`__","Input Range Adaptors","2019-07 (Cologne)","|Complete|","16.0","|ranges|"
"`P1035R7 <https://wg21.link/P1035R7>`__","Input Range Adaptors","2019-07 (Cologne)","|Complete|","16.0",""
"`P1065R2 <https://wg21.link/P1065R2>`__","Constexpr INVOKE","2019-07 (Cologne)","|Complete|","12.0",""
"`P1135R6 <https://wg21.link/P1135R6>`__","The C++20 Synchronization Library","2019-07 (Cologne)","|Complete|","11.0",""
"`P1207R4 <https://wg21.link/P1207R4>`__","Movability of Single-pass Iterators","2019-07 (Cologne)","|Complete|","15.0","|ranges|"
"`P1207R4 <https://wg21.link/P1207R4>`__","Movability of Single-pass Iterators","2019-07 (Cologne)","|Complete|","15.0",""
"`P1208R6 <https://wg21.link/P1208R6>`__","Adopt source_location for C++20","2019-07 (Cologne)","|Complete|","16.0",""
"`P1355R2 <https://wg21.link/P1355R2>`__","Exposing a narrow contract for ceil2","2019-07 (Cologne)","|Complete|","9.0",""
"`P1361R2 <https://wg21.link/P1361R2>`__","Integration of chrono with text formatting","2019-07 (Cologne)","|Partial|","",""
"`P1423R3 <https://wg21.link/P1423R3>`__","char8_t backward compatibility remediation","2019-07 (Cologne)","|Complete|","15.0",""
"`P1424R1 <https://wg21.link/P1424R1>`__","'constexpr' feature macro concerns","2019-07 (Cologne)","|Nothing To Do| [#note-P1424]_","",""
"`P1424R1 <https://wg21.link/P1424R1>`__","'constexpr' feature macro concerns","2019-07 (Cologne)","|Nothing To Do|","","Superseded by `P1902 <https://wg21.link/P1902>`__"
"`P1466R3 <https://wg21.link/P1466R3>`__","Miscellaneous minor fixes for chrono","2019-07 (Cologne)","","",""
"`P1474R1 <https://wg21.link/P1474R1>`__","Helpful pointers for ContiguousIterator","2019-07 (Cologne)","|Complete|","15.0","|ranges|"
"`P1474R1 <https://wg21.link/P1474R1>`__","Helpful pointers for ContiguousIterator","2019-07 (Cologne)","|Complete|","15.0",""
"`P1502R1 <https://wg21.link/P1502R1>`__","Standard library header units for C++20","2019-07 (Cologne)","","",""
"`P1522R1 <https://wg21.link/P1522R1>`__","Iterator Difference Type and Integer Overflow","2019-07 (Cologne)","|Complete|","15.0","|ranges|"
"`P1523R1 <https://wg21.link/P1523R1>`__","Views and Size Types","2019-07 (Cologne)","|Complete|","15.0","|ranges|"
"`P1522R1 <https://wg21.link/P1522R1>`__","Iterator Difference Type and Integer Overflow","2019-07 (Cologne)","|Complete|","15.0",""
"`P1523R1 <https://wg21.link/P1523R1>`__","Views and Size Types","2019-07 (Cologne)","|Complete|","15.0",""
"`P1612R1 <https://wg21.link/P1612R1>`__","Relocate Endian's Specification","2019-07 (Cologne)","|Complete|","10.0",""
"`P1614R2 <https://wg21.link/P1614R2>`__","The Mothership has Landed","2019-07 (Cologne)","|Complete| [#note-P1614]_","19.0",""
"`P1638R1 <https://wg21.link/P1638R1>`__","basic_istream_view::iterator should not be copyable","2019-07 (Cologne)","|Complete|","16.0","|ranges|"
"`P1614R2 <https://wg21.link/P1614R2>`__","The Mothership has Landed","2019-07 (Cologne)","|Complete|","19.0","``std::strong_order(long double, long double)`` is partly implemented."
"`P1638R1 <https://wg21.link/P1638R1>`__","basic_istream_view::iterator should not be copyable","2019-07 (Cologne)","|Complete|","16.0",""
"`P1643R1 <https://wg21.link/P1643R1>`__","Add wait/notify to atomic_ref","2019-07 (Cologne)","|Complete|","19.0",""
"`P1644R0 <https://wg21.link/P1644R0>`__","Add wait/notify to atomic<shared_ptr>","2019-07 (Cologne)","","",""
"`P1650R0 <https://wg21.link/P1650R0>`__","Output std::chrono::days with 'd' suffix","2019-07 (Cologne)","|Complete|","16.0",""
"`P1651R0 <https://wg21.link/P1651R0>`__","bind_front should not unwrap reference_wrapper","2019-07 (Cologne)","|Complete|","13.0",""
"`P1652R1 <https://wg21.link/P1652R1>`__","Printf corner cases in std::format","2019-07 (Cologne)","|Complete|","14.0",""
"`P1661R1 <https://wg21.link/P1661R1>`__","Remove dedicated precalculated hash lookup interface","2019-07 (Cologne)","|Nothing To Do|","",""
"`P1754R1 <https://wg21.link/P1754R1>`__","Rename concepts to standard_case for C++20, while we still can","2019-07 (Cologne)","|Complete|","15.0","|ranges|"
"`P1754R1 <https://wg21.link/P1754R1>`__","Rename concepts to standard_case for C++20, while we still can","2019-07 (Cologne)","|Complete|","15.0",""
"","","","","",""
"`P0883R2 <https://wg21.link/P0883R2>`__","Fixing Atomic Initialization","2019-11 (Belfast)","|Complete| [#note-P0883.1]_ [#note-P0883.2]_","14.0",""
"`P1391R4 <https://wg21.link/P1391R4>`__","Range constructor for std::string_view","2019-11 (Belfast)","|Complete|","14.0","|ranges|"
"`P1394R4 <https://wg21.link/P1394R4>`__","Range constructor for std::span","2019-11 (Belfast)","|Complete|","14.0","|ranges|"
"`P1456R1 <https://wg21.link/P1456R1>`__","Move-only views","2019-11 (Belfast)","|Complete|","15.0","|ranges|"
"`P0883R2 <https://wg21.link/P0883R2>`__","Fixing Atomic Initialization","2019-11 (Belfast)","|Complete|","14.0","shared_ptr and floating-point changes weren't applied as they themselves aren't implemented yet. Also, ``ATOMIC_FLAG_INIT`` was marked deprecated in version 14.0, but was undeprecated with the implementation of LWG3659 in version 15.0."
"`P1391R4 <https://wg21.link/P1391R4>`__","Range constructor for std::string_view","2019-11 (Belfast)","|Complete|","14.0",""
"`P1394R4 <https://wg21.link/P1394R4>`__","Range constructor for std::span","2019-11 (Belfast)","|Complete|","14.0",""
"`P1456R1 <https://wg21.link/P1456R1>`__","Move-only views","2019-11 (Belfast)","|Complete|","15.0",""
"`P1622R3 <https://wg21.link/P1622R3>`__","Mandating the Standard Library: Clause 32 - Thread support library","2019-11 (Belfast)","","",""
"`P1645R1 <https://wg21.link/P1645R1>`__","constexpr for numeric algorithms","2019-11 (Belfast)","|Complete|","12.0",""
"`P1686R2 <https://wg21.link/P1686R2>`__","Mandating the Standard Library: Clause 27 - Time library","2019-11 (Belfast)","","",""
"`P1690R1 <https://wg21.link/P1690R1>`__","Refinement Proposal for P0919 Heterogeneous lookup for unordered containers","2019-11 (Belfast)","|Complete|","12.0",""
"`P1716R3 <https://wg21.link/P1716R3>`__","ranges compare algorithm are over-constrained","2019-11 (Belfast)","|Complete|","15.0","|ranges|"
"`P1716R3 <https://wg21.link/P1716R3>`__","ranges compare algorithm are over-constrained","2019-11 (Belfast)","|Complete|","15.0",""
"`P1718R2 <https://wg21.link/P1718R2>`__","Mandating the Standard Library: Clause 25 - Algorithms library","2019-11 (Belfast)","","",""
"`P1719R2 <https://wg21.link/P1719R2>`__","Mandating the Standard Library: Clause 26 - Numerics library","2019-11 (Belfast)","","",""
"`P1720R2 <https://wg21.link/P1720R2>`__","Mandating the Standard Library: Clause 28 - Localization library","2019-11 (Belfast)","","",""
@ -150,13 +150,13 @@
"`P1722R2 <https://wg21.link/P1722R2>`__","Mandating the Standard Library: Clause 30 - Regular Expression library","2019-11 (Belfast)","","",""
"`P1723R2 <https://wg21.link/P1723R2>`__","Mandating the Standard Library: Clause 31 - Atomics library","2019-11 (Belfast)","","",""
"`P1855R0 <https://wg21.link/P1855R0>`__","Make ``<compare>``\ freestanding","2019-11 (Belfast)","","",""
"`P1862R1 <https://wg21.link/P1862R1>`__","Ranges adaptors for non-copyable iterators","2019-11 (Belfast)","|Complete|","16.0","|ranges|"
"`P1862R1 <https://wg21.link/P1862R1>`__","Ranges adaptors for non-copyable iterators","2019-11 (Belfast)","|Complete|","16.0",""
"`P1865R1 <https://wg21.link/P1865R1>`__","Add max() to latch and barrier","2019-11 (Belfast)","|Complete|","11.0",""
"`P1869R1 <https://wg21.link/P1869R1>`__","Rename 'condition_variable_any' interruptible wait methods","2019-11 (Belfast)","","",""
"`P1870R1 <https://wg21.link/P1870R1>`__","forwarding-range is too subtle","2019-11 (Belfast)","|Complete|","15.0","|ranges|"
"`P1871R1 <https://wg21.link/P1871R1>`__","Concept traits should be named after concepts","2019-11 (Belfast)","|Complete|","14.0","|ranges|"
"`P1870R1 <https://wg21.link/P1870R1>`__","forwarding-range is too subtle","2019-11 (Belfast)","|Complete|","15.0",""
"`P1871R1 <https://wg21.link/P1871R1>`__","Concept traits should be named after concepts","2019-11 (Belfast)","|Complete|","14.0",""
"`P1872R0 <https://wg21.link/P1872R0>`__","span should have size_type, not index_type","2019-11 (Belfast)","|Complete|","10.0",""
"`P1878R1 <https://wg21.link/P1878R1>`__","Constraining Readable Types","2019-11 (Belfast)","|Complete|","15.0","|ranges|"
"`P1878R1 <https://wg21.link/P1878R1>`__","Constraining Readable Types","2019-11 (Belfast)","|Complete|","15.0",""
"`P1892R1 <https://wg21.link/P1892R1>`__","Extended locale-specific presentation specifiers for std::format","2019-11 (Belfast)","|Complete|","14.0",""
"`P1902R1 <https://wg21.link/P1902R1>`__","Missing feature-test macros 2018-2019","2019-11 (Belfast)","","",""
"`P1959R0 <https://wg21.link/P1959R0>`__","Remove std::weak_equality and std::strong_equality","2019-11 (Belfast)","|Nothing To Do|","",""
@ -167,40 +167,40 @@
"`P0586R2 <https://wg21.link/P0586R2>`__","Safe integral comparisons","2020-02 (Prague)","|Complete|","13.0",""
"`P0593R6 <https://wg21.link/P0593R6>`__","Implicit creation of objects for low-level object manipulation","2020-02 (Prague)","","",""
"`P1115R3 <https://wg21.link/P1115R3>`__","Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if","2020-02 (Prague)","|Complete|","11.0",""
"`P1243R4 <https://wg21.link/P1243R4>`__","Rangify New Algorithms","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`P1243R4 <https://wg21.link/P1243R4>`__","Rangify New Algorithms","2020-02 (Prague)","|Complete|","15.0",""
"`P1460R1 <https://wg21.link/P1460R1>`__","Mandating the Standard Library: Clause 20 - Utilities library","2020-02 (Prague)","","",""
"`P1739R4 <https://wg21.link/P1739R4>`__","Avoid template bloat for safe_ranges in combination with ""subrange-y"" view adaptors","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`P1739R4 <https://wg21.link/P1739R4>`__","Avoid template bloat for safe_ranges in combination with ""subrange-y"" view adaptors","2020-02 (Prague)","|Complete|","15.0",""
"`P1831R1 <https://wg21.link/P1831R1>`__","Deprecating volatile: library","2020-02 (Prague)","","",""
"`P1868R2 <https://wg21.link/P1868R2>`__","width: clarifying units of width and precision in std::format","2020-02 (Prague)","|Complete|","14.0",""
"`P1956R1 <https://wg21.link/P1956R1>`__","On the names of low-level bit manipulation functions","2020-02 (Prague)","|Complete|","12.0",""
"`P1957R2 <https://wg21.link/P1957R2>`__","Converting from ``T*``\ to bool should be considered narrowing (re: US 212)","2020-02 (Prague)","|Complete|","18.0",""
"`P1963R0 <https://wg21.link/P1963R0>`__","Fixing US 313","2020-02 (Prague)","","",""
"`P1964R2 <https://wg21.link/P1964R2>`__","Wording for boolean-testable","2020-02 (Prague)","|Complete|","13.0",""
"`P1970R2 <https://wg21.link/P1970R2>`__","Consistency for size() functions: Add ranges::ssize","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`P1970R2 <https://wg21.link/P1970R2>`__","Consistency for size() functions: Add ranges::ssize","2020-02 (Prague)","|Complete|","15.0",""
"`P1973R1 <https://wg21.link/P1973R1>`__","Rename ""_default_init"" Functions, Rev1","2020-02 (Prague)","|Complete|","16.0",""
"`P1976R2 <https://wg21.link/P1976R2>`__","Fixed-size span construction from dynamic range","2020-02 (Prague)","|Complete|","11.0","|ranges|"
"`P1981R0 <https://wg21.link/P1981R0>`__","Rename leap to leap_second","2020-02 (Prague)","|Complete|","19.0","|chrono|"
"`P1982R0 <https://wg21.link/P1982R0>`__","Rename link to time_zone_link","2020-02 (Prague)","|Complete|","19.0","|chrono|"
"`P1983R0 <https://wg21.link/P1983R0>`__","Wording for GB301, US296, US292, US291, and US283","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`P1994R1 <https://wg21.link/P1994R1>`__","elements_view needs its own sentinel","2020-02 (Prague)","|Complete|","16.0","|ranges|"
"`P1976R2 <https://wg21.link/P1976R2>`__","Fixed-size span construction from dynamic range","2020-02 (Prague)","|Complete|","11.0",""
"`P1981R0 <https://wg21.link/P1981R0>`__","Rename leap to leap_second","2020-02 (Prague)","|Complete|","19.0",""
"`P1982R0 <https://wg21.link/P1982R0>`__","Rename link to time_zone_link","2020-02 (Prague)","|Complete|","19.0",""
"`P1983R0 <https://wg21.link/P1983R0>`__","Wording for GB301, US296, US292, US291, and US283","2020-02 (Prague)","|Complete|","15.0",""
"`P1994R1 <https://wg21.link/P1994R1>`__","elements_view needs its own sentinel","2020-02 (Prague)","|Complete|","16.0",""
"`P2002R1 <https://wg21.link/P2002R1>`__","Defaulted comparison specification cleanups","2020-02 (Prague)","|Complete|","7.0",""
"`P2045R1 <https://wg21.link/P2045R1>`__","Missing Mandates for the standard library","2020-02 (Prague)","","",""
"`P2085R0 <https://wg21.link/P2085R0>`__","Consistent defaulted comparisons","2020-02 (Prague)","","",""
"`P2091R0 <https://wg21.link/P2091R0>`__","Issues with range access CPOs","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`P2091R0 <https://wg21.link/P2091R0>`__","Issues with range access CPOs","2020-02 (Prague)","|Complete|","15.0",""
"`P2101R0 <https://wg21.link/P2101R0>`__","P2101R0: 'Models' subsumes 'satisfies' (Wording for US298 and US300)","2020-02 (Prague)","|Nothing To Do|","",""
"`P2102R0 <https://wg21.link/P2102R0>`__","Make 'implicit expression variations' more explicit (Wording for US185)","2020-02 (Prague)","|Complete|","15.0",""
"`P2106R0 <https://wg21.link/P2106R0>`__","Alternative wording for GB315 and GB316","2020-02 (Prague)","|Complete|","15.0","|ranges|"
"`P2106R0 <https://wg21.link/P2106R0>`__","Alternative wording for GB315 and GB316","2020-02 (Prague)","|Complete|","15.0",""
"`P2116R0 <https://wg21.link/P2116R0>`__","Remove tuple-like protocol support from fixed-extent span","2020-02 (Prague)","|Complete|","11.0",""
"","","","","",""
"`P2231R1 <https://wg21.link/P2231R1>`__","Missing constexpr in std::optional and std::variant","2021-06 (Virtual)","|Complete|","19.0",""
"`P2325R3 <https://wg21.link/P2325R3>`__","Views should not be required to be default constructible","2021-06 (Virtual)","|Complete|","16.0","|ranges|"
"`P2210R2 <https://wg21.link/P2210R2>`__","Superior String Splitting","2021-06 (Virtual)","|Complete|","16.0","|ranges|"
"`P2325R3 <https://wg21.link/P2325R3>`__","Views should not be required to be default constructible","2021-06 (Virtual)","|Complete|","16.0",""
"`P2210R2 <https://wg21.link/P2210R2>`__","Superior String Splitting","2021-06 (Virtual)","|Complete|","16.0",""
"`P2216R3 <https://wg21.link/P2216R3>`__","std::format improvements","2021-06 (Virtual)","|Complete|","15.0",""
"`P2281R1 <https://wg21.link/P2281R1>`__","Clarifying range adaptor objects","2021-06 (Virtual)","|Complete|","14.0","|ranges|"
"`P2328R1 <https://wg21.link/P2328R1>`__","join_view should join all views of ranges","2021-06 (Virtual)","|Complete|","15.0","|ranges|"
"`P2367R0 <https://wg21.link/P2367R0>`__","Remove misuses of list-initialization from Clause 24","2021-06 (Virtual)","|Complete|","15.0","|ranges|"
"`P2281R1 <https://wg21.link/P2281R1>`__","Clarifying range adaptor objects","2021-06 (Virtual)","|Complete|","14.0",""
"`P2328R1 <https://wg21.link/P2328R1>`__","join_view should join all views of ranges","2021-06 (Virtual)","|Complete|","15.0",""
"`P2367R0 <https://wg21.link/P2367R0>`__","Remove misuses of list-initialization from Clause 24","2021-06 (Virtual)","|Complete|","15.0",""
"","","","","",""
"`P2372R3 <https://wg21.link/P2372R3>`__","Fixing locale handling in chrono formatters","2021-10 (Virtual)","|In Progress|","",""
"`P2415R2 <https://wg21.link/P2415R2>`__","What is a ``view``","2021-10 (Virtual)","|Complete|","14.0","|ranges|"
"`P2415R2 <https://wg21.link/P2415R2>`__","What is a ``view``","2021-10 (Virtual)","|Complete|","14.0",""
"`P2418R2 <https://wg21.link/P2418R2>`__","Add support for ``std::generator``-like types to ``std::format``","2021-10 (Virtual)","|Complete|","15.0",""
"`P2432R1 <https://wg21.link/P2432R1>`__","Fix ``istream_view``","2021-10 (Virtual)","|Complete|","16.0","|ranges|"
"`P2432R1 <https://wg21.link/P2432R1>`__","Fix ``istream_view``","2021-10 (Virtual)","|Complete|","16.0",""

1 Paper # Paper Name Meeting Status First released version Labels Notes
2 `P0463R1 <https://wg21.link/P0463R1>`__ Endian just Endian 2017-07 (Toronto) |Complete| 7.0
3 `P0674R1 <https://wg21.link/P0674R1>`__ Extending make_shared to Support Arrays 2017-07 (Toronto) |Complete| 15.0
4
18 `P0777R1 <https://wg21.link/P0777R1>`__ Treating Unnecessary ``decay``\ 2017-11 (Albuquerque) |Complete| 7.0
19
20 `P0122R7 <https://wg21.link/P0122R7>`__ <span> 2018-03 (Jacksonville) |Complete| 7.0
21 `P0355R7 <https://wg21.link/P0355R7>`__ Extending chrono to Calendars and Time Zones 2018-03 (Jacksonville) |Partial| [#note-P0355]_ |Partial| See the `Github issue <https://github.com/llvm/llvm-project/issues/99982>`__ for detailed status
22 `P0551R3 <https://wg21.link/P0551R3>`__ Thou Shalt Not Specialize ``std``\ Function Templates! 2018-03 (Jacksonville) |Complete| 11.0
23 `P0753R2 <https://wg21.link/P0753R2>`__ Manipulators for C++ Synchronized Buffered Ostream 2018-03 (Jacksonville)
24 `P0754R2 <https://wg21.link/P0754R2>`__ <version> 2018-03 (Jacksonville) |Complete| 7.0
25 `P0809R0 <https://wg21.link/P0809R0>`__ Comparing Unordered Containers 2018-03 (Jacksonville) |Nothing To Do|
26 `P0858R0 <https://wg21.link/P0858R0>`__ Constexpr iterator requirements 2018-03 (Jacksonville) |Complete| 12.0
27 `P0905R1 <https://wg21.link/P0905R1>`__ Symmetry for spaceship 2018-03 (Jacksonville) |Complete| 7.0 |spaceship|
28 `P0966R1 <https://wg21.link/P0966R1>`__ ``string::reserve``\ Should Not Shrink 2018-03 (Jacksonville) |Complete| [#note-P0966]_ |Complete| 12.0 It was previously erroneously marked as complete in version 8.0. See `bug 45368 <https://llvm.org/PR45368>`__
29
30 `P0019R8 <https://wg21.link/P0019R8>`__ Atomic Ref 2018-06 (Rapperswil) |Complete| 19.0
31 `P0458R2 <https://wg21.link/P0458R2>`__ Checking for Existence of an Element in Associative Containers 2018-06 (Rapperswil) |Complete| 13.0
32 `P0475R1 <https://wg21.link/P0475R1>`__ LWG 2511: guaranteed copy elision for piecewise construction 2018-06 (Rapperswil) |Complete|
33 `P0476R2 <https://wg21.link/P0476R2>`__ Bit-casting object representations 2018-06 (Rapperswil) |Complete| 14.0
34 `P0528R3 <https://wg21.link/P0528R3>`__ The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange 2018-06 (Rapperswil)
35 `P0542R5 <https://wg21.link/P0542R5>`__ Support for contract based programming in C++ 2018-06 (Rapperswil) |Nothing To Do| [#note-P0542]_ |Nothing To Do| n/a Pulled at the 2019-07 meeting in Cologne
36 `P0556R3 <https://wg21.link/P0556R3>`__ Integral power-of-2 operations 2018-06 (Rapperswil) |Complete| 9.0
37 `P0619R4 <https://wg21.link/P0619R4>`__ Reviewing Deprecated Facilities of C++17 for C++20 2018-06 (Rapperswil) |Partial| [#note-P0619]_ |Partial| Only sections D.7, D.8, D.9, D.10, D.11 and D.13 are implemented. Sections D.4 and D.12 remain undone.
38 `P0646R1 <https://wg21.link/P0646R1>`__ Improving the Return Value of Erase-Like Algorithms 2018-06 (Rapperswil) |Complete| 10.0
39 `P0722R3 <https://wg21.link/P0722R3>`__ Efficient sized delete for variable sized classes 2018-06 (Rapperswil) |Complete| 9.0
40 `P0758R1 <https://wg21.link/P0758R1>`__ Implicit conversion traits and utility functions 2018-06 (Rapperswil) |Complete|
41 `P0759R1 <https://wg21.link/P0759R1>`__ fpos Requirements 2018-06 (Rapperswil) |Complete| 11.0
42 `P0769R2 <https://wg21.link/P0769R2>`__ Add shift to <algorithm> 2018-06 (Rapperswil) |Complete| 12.0
43 `P0788R3 <https://wg21.link/P0788R3>`__ Standard Library Specification in a Concepts and Contracts World 2018-06 (Rapperswil) |Nothing To Do| [#note-P0788]_ |Nothing To Do| n/a Pulled at the 2019-07 meeting in Cologne
44 `P0879R0 <https://wg21.link/P0879R0>`__ Constexpr for swap and swap related functions Also resolves LWG issue 2800. 2018-06 (Rapperswil) |Complete| 13.0
45 `P0887R1 <https://wg21.link/P0887R1>`__ The identity metafunction 2018-06 (Rapperswil) |Complete| 8.0
46 `P0892R2 <https://wg21.link/P0892R2>`__ explicit(bool) 2018-06 (Rapperswil)
49 `P0941R2 <https://wg21.link/P0941R2>`__ Integrating feature-test macros into the C++ WD 2018-06 (Rapperswil) |In Progress|
50 `P1023R0 <https://wg21.link/P1023R0>`__ constexpr comparison operators for std::array 2018-06 (Rapperswil) |Complete| 8.0
51 `P1025R1 <https://wg21.link/P1025R1>`__ Update The Reference To The Unicode Standard 2018-06 (Rapperswil)
52 `P1120R0 <https://wg21.link/P1120R0>`__ Consistency improvements for <=> and other comparison operators 2018-06 (Rapperswil) |spaceship|
53
54 `P0318R1 <https://wg21.link/P0318R1>`__ unwrap_ref_decay and unwrap_reference 2018-11 (San Diego) |Complete| 8.0
55 `P0356R5 <https://wg21.link/P0356R5>`__ Simplified partial function application 2018-11 (San Diego) |Complete| 13.0
56 `P0357R3 <https://wg21.link/P0357R3>`__ reference_wrapper for incomplete types 2018-11 (San Diego) |Complete| 8.0
57 `P0482R6 <https://wg21.link/P0482R6>`__ char8_t: A type for UTF-8 characters and strings 2018-11 (San Diego) |Complete| 16.0
58 `P0487R1 <https://wg21.link/P0487R1>`__ Fixing ``operator>>(basic_istream&, CharT*)``\ (LWG 2499) 2018-11 (San Diego) |Complete| 8.0
59 `P0591R4 <https://wg21.link/P0591R4>`__ Utility functions to implement uses-allocator construction 2018-11 (San Diego) |Partial| [#note-P0591]_ |Partial| The changes in [mem.poly.allocator.mem] are missing
60 `P0595R2 <https://wg21.link/P0595R2>`__ std::is_constant_evaluated() 2018-11 (San Diego) |Complete| 9.0
61 `P0602R4 <https://wg21.link/P0602R4>`__ variant and optional should propagate copy/move triviality 2018-11 (San Diego) |Complete| 8.0
62 `P0608R3 <https://wg21.link/P0608R3>`__ A sane variant converting constructor 2018-11 (San Diego) |Complete| 9.0
63 `P0655R1 <https://wg21.link/P0655R1>`__ visit<R>: Explicit Return Type for visit 2018-11 (San Diego) |Complete| 12.0
64 `P0771R1 <https://wg21.link/P0771R1>`__ std::function move constructor should be noexcept 2018-11 (San Diego) |Complete| 6.0
65 `P0896R4 <https://wg21.link/P0896R4>`__ The One Ranges Proposal 2018-11 (San Diego) |Complete| 15.0 |ranges|
66 `P0899R1 <https://wg21.link/P0899R1>`__ P0899R1 - LWG 3016 is not a defect 2018-11 (San Diego) |Nothing To Do|
67 `P0919R3 <https://wg21.link/P0919R3>`__ Heterogeneous lookup for unordered containers 2018-11 (San Diego) |Complete| 12.0
68 `P0972R0 <https://wg21.link/P0972R0>`__ <chrono> ``zero()``\ , ``min()``\ , and ``max()``\ should be noexcept 2018-11 (San Diego) |Complete| 8.0
85 `P0340R3 <https://wg21.link/P0340R3>`__ Making std::underlying_type SFINAE-friendly 2019-02 (Kona) |Complete| 9.0
86 `P0738R2 <https://wg21.link/P0738R2>`__ I Stream, You Stream, We All Stream for istream_iterator 2019-02 (Kona)
87 `P0811R3 <https://wg21.link/P0811R3>`__ Well-behaved interpolation for numbers and pointers 2019-02 (Kona) |Complete| 9.0
88 `P0920R2 <https://wg21.link/P0920R2>`__ Precalculated hash values in lookup 2019-02 (Kona) |Nothing To Do| [#note-P0920]_ |Nothing To Do| Reverted by `P1661 <https://wg21.link/P1661>`__
89 `P1001R2 <https://wg21.link/P1001R2>`__ Target Vectorization Policies from Parallelism V2 TS to C++20 2019-02 (Kona) |Complete| 17.0
90 `P1024R3 <https://wg21.link/P1024R3>`__ Usability Enhancements for std::span 2019-02 (Kona) |Complete| 9.0
91 `P1164R1 <https://wg21.link/P1164R1>`__ Make create_directory() Intuitive 2019-02 (Kona) |Complete| 12.0
92 `P1227R2 <https://wg21.link/P1227R2>`__ Signed ssize() functions, unsigned size() functions 2019-02 (Kona) |Complete| 9.0
93 `P1252R2 <https://wg21.link/P1252R2>`__ Ranges Design Cleanup 2019-02 (Kona) |Complete| 15.0 |ranges|
94 `P1286R2 <https://wg21.link/P1286R2>`__ Contra CWG DR1778 2019-02 (Kona)
95 `P1357R1 <https://wg21.link/P1357R1>`__ Traits for [Un]bounded Arrays 2019-02 (Kona) |Complete| 9.0
96 `P1458R1 <https://wg21.link/P1458R1>`__ Mandating the Standard Library: Clause 16 - Language support library 2019-02 (Kona) |Complete| 9.0
104 `P0466R5 <https://wg21.link/P0466R5>`__ Layout-compatibility and Pointer-interconvertibility Traits 2019-07 (Cologne)
105 `P0553R4 <https://wg21.link/P0553R4>`__ Bit operations 2019-07 (Cologne) |Complete| 9.0
106 `P0631R8 <https://wg21.link/P0631R8>`__ Math Constants 2019-07 (Cologne) |Complete| 11.0
107 `P0645R10 <https://wg21.link/P0645R10>`__ Text Formatting 2019-07 (Cologne) |Complete| [#note-P0645]_ |Complete| 14.0 The implementation was complete since LLVM 14, but the feature-test macro was not set until LLVM 19
108 `P0660R10 <https://wg21.link/P0660R10>`__ Stop Token and Joining Thread, Rev 10. 2019-07 (Cologne) |Complete| [#note-P0660]_ |Complete| 18.0 The paper is implemented but the features are experimental and can be enabled via ``-fexperimental-library``.
109 `P0784R7 <https://wg21.link/P0784R7>`__ More constexpr containers 2019-07 (Cologne) |Complete| 12.0
110 `P0980R1 <https://wg21.link/P0980R1>`__ Making std::string constexpr 2019-07 (Cologne) |Complete| 15.0
111 `P1004R2 <https://wg21.link/P1004R2>`__ Making std::vector constexpr 2019-07 (Cologne) |Complete| 15.0
112 `P1035R7 <https://wg21.link/P1035R7>`__ Input Range Adaptors 2019-07 (Cologne) |Complete| 16.0 |ranges|
113 `P1065R2 <https://wg21.link/P1065R2>`__ Constexpr INVOKE 2019-07 (Cologne) |Complete| 12.0
114 `P1135R6 <https://wg21.link/P1135R6>`__ The C++20 Synchronization Library 2019-07 (Cologne) |Complete| 11.0
115 `P1207R4 <https://wg21.link/P1207R4>`__ Movability of Single-pass Iterators 2019-07 (Cologne) |Complete| 15.0 |ranges|
116 `P1208R6 <https://wg21.link/P1208R6>`__ Adopt source_location for C++20 2019-07 (Cologne) |Complete| 16.0
117 `P1355R2 <https://wg21.link/P1355R2>`__ Exposing a narrow contract for ceil2 2019-07 (Cologne) |Complete| 9.0
118 `P1361R2 <https://wg21.link/P1361R2>`__ Integration of chrono with text formatting 2019-07 (Cologne) |Partial|
119 `P1423R3 <https://wg21.link/P1423R3>`__ char8_t backward compatibility remediation 2019-07 (Cologne) |Complete| 15.0
120 `P1424R1 <https://wg21.link/P1424R1>`__ 'constexpr' feature macro concerns 2019-07 (Cologne) |Nothing To Do| [#note-P1424]_ |Nothing To Do| Superseded by `P1902 <https://wg21.link/P1902>`__
121 `P1466R3 <https://wg21.link/P1466R3>`__ Miscellaneous minor fixes for chrono 2019-07 (Cologne)
122 `P1474R1 <https://wg21.link/P1474R1>`__ Helpful pointers for ContiguousIterator 2019-07 (Cologne) |Complete| 15.0 |ranges|
123 `P1502R1 <https://wg21.link/P1502R1>`__ Standard library header units for C++20 2019-07 (Cologne)
124 `P1522R1 <https://wg21.link/P1522R1>`__ Iterator Difference Type and Integer Overflow 2019-07 (Cologne) |Complete| 15.0 |ranges|
125 `P1523R1 <https://wg21.link/P1523R1>`__ Views and Size Types 2019-07 (Cologne) |Complete| 15.0 |ranges|
126 `P1612R1 <https://wg21.link/P1612R1>`__ Relocate Endian's Specification 2019-07 (Cologne) |Complete| 10.0
127 `P1614R2 <https://wg21.link/P1614R2>`__ The Mothership has Landed 2019-07 (Cologne) |Complete| [#note-P1614]_ |Complete| 19.0 ``std::strong_order(long double, long double)`` is partly implemented.
128 `P1638R1 <https://wg21.link/P1638R1>`__ basic_istream_view::iterator should not be copyable 2019-07 (Cologne) |Complete| 16.0 |ranges|
129 `P1643R1 <https://wg21.link/P1643R1>`__ Add wait/notify to atomic_ref 2019-07 (Cologne) |Complete| 19.0
130 `P1644R0 <https://wg21.link/P1644R0>`__ Add wait/notify to atomic<shared_ptr> 2019-07 (Cologne)
131 `P1650R0 <https://wg21.link/P1650R0>`__ Output std::chrono::days with 'd' suffix 2019-07 (Cologne) |Complete| 16.0
132 `P1651R0 <https://wg21.link/P1651R0>`__ bind_front should not unwrap reference_wrapper 2019-07 (Cologne) |Complete| 13.0
133 `P1652R1 <https://wg21.link/P1652R1>`__ Printf corner cases in std::format 2019-07 (Cologne) |Complete| 14.0
134 `P1661R1 <https://wg21.link/P1661R1>`__ Remove dedicated precalculated hash lookup interface 2019-07 (Cologne) |Nothing To Do|
135 `P1754R1 <https://wg21.link/P1754R1>`__ Rename concepts to standard_case for C++20, while we still can 2019-07 (Cologne) |Complete| 15.0 |ranges|
136
137 `P0883R2 <https://wg21.link/P0883R2>`__ Fixing Atomic Initialization 2019-11 (Belfast) |Complete| [#note-P0883.1]_ [#note-P0883.2]_ |Complete| 14.0 shared_ptr and floating-point changes weren't applied as they themselves aren't implemented yet. Also, ``ATOMIC_FLAG_INIT`` was marked deprecated in version 14.0, but was undeprecated with the implementation of LWG3659 in version 15.0.
138 `P1391R4 <https://wg21.link/P1391R4>`__ Range constructor for std::string_view 2019-11 (Belfast) |Complete| 14.0 |ranges|
139 `P1394R4 <https://wg21.link/P1394R4>`__ Range constructor for std::span 2019-11 (Belfast) |Complete| 14.0 |ranges|
140 `P1456R1 <https://wg21.link/P1456R1>`__ Move-only views 2019-11 (Belfast) |Complete| 15.0 |ranges|
141 `P1622R3 <https://wg21.link/P1622R3>`__ Mandating the Standard Library: Clause 32 - Thread support library 2019-11 (Belfast)
142 `P1645R1 <https://wg21.link/P1645R1>`__ constexpr for numeric algorithms 2019-11 (Belfast) |Complete| 12.0
143 `P1686R2 <https://wg21.link/P1686R2>`__ Mandating the Standard Library: Clause 27 - Time library 2019-11 (Belfast)
144 `P1690R1 <https://wg21.link/P1690R1>`__ Refinement Proposal for P0919 Heterogeneous lookup for unordered containers 2019-11 (Belfast) |Complete| 12.0
145 `P1716R3 <https://wg21.link/P1716R3>`__ ranges compare algorithm are over-constrained 2019-11 (Belfast) |Complete| 15.0 |ranges|
146 `P1718R2 <https://wg21.link/P1718R2>`__ Mandating the Standard Library: Clause 25 - Algorithms library 2019-11 (Belfast)
147 `P1719R2 <https://wg21.link/P1719R2>`__ Mandating the Standard Library: Clause 26 - Numerics library 2019-11 (Belfast)
148 `P1720R2 <https://wg21.link/P1720R2>`__ Mandating the Standard Library: Clause 28 - Localization library 2019-11 (Belfast)
150 `P1722R2 <https://wg21.link/P1722R2>`__ Mandating the Standard Library: Clause 30 - Regular Expression library 2019-11 (Belfast)
151 `P1723R2 <https://wg21.link/P1723R2>`__ Mandating the Standard Library: Clause 31 - Atomics library 2019-11 (Belfast)
152 `P1855R0 <https://wg21.link/P1855R0>`__ Make ``<compare>``\ freestanding 2019-11 (Belfast)
153 `P1862R1 <https://wg21.link/P1862R1>`__ Ranges adaptors for non-copyable iterators 2019-11 (Belfast) |Complete| 16.0 |ranges|
154 `P1865R1 <https://wg21.link/P1865R1>`__ Add max() to latch and barrier 2019-11 (Belfast) |Complete| 11.0
155 `P1869R1 <https://wg21.link/P1869R1>`__ Rename 'condition_variable_any' interruptible wait methods 2019-11 (Belfast)
156 `P1870R1 <https://wg21.link/P1870R1>`__ forwarding-range is too subtle 2019-11 (Belfast) |Complete| 15.0 |ranges|
157 `P1871R1 <https://wg21.link/P1871R1>`__ Concept traits should be named after concepts 2019-11 (Belfast) |Complete| 14.0 |ranges|
158 `P1872R0 <https://wg21.link/P1872R0>`__ span should have size_type, not index_type 2019-11 (Belfast) |Complete| 10.0
159 `P1878R1 <https://wg21.link/P1878R1>`__ Constraining Readable Types 2019-11 (Belfast) |Complete| 15.0 |ranges|
160 `P1892R1 <https://wg21.link/P1892R1>`__ Extended locale-specific presentation specifiers for std::format 2019-11 (Belfast) |Complete| 14.0
161 `P1902R1 <https://wg21.link/P1902R1>`__ Missing feature-test macros 2018-2019 2019-11 (Belfast)
162 `P1959R0 <https://wg21.link/P1959R0>`__ Remove std::weak_equality and std::strong_equality 2019-11 (Belfast) |Nothing To Do|
167 `P0586R2 <https://wg21.link/P0586R2>`__ Safe integral comparisons 2020-02 (Prague) |Complete| 13.0
168 `P0593R6 <https://wg21.link/P0593R6>`__ Implicit creation of objects for low-level object manipulation 2020-02 (Prague)
169 `P1115R3 <https://wg21.link/P1115R3>`__ Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if 2020-02 (Prague) |Complete| 11.0
170 `P1243R4 <https://wg21.link/P1243R4>`__ Rangify New Algorithms 2020-02 (Prague) |Complete| 15.0 |ranges|
171 `P1460R1 <https://wg21.link/P1460R1>`__ Mandating the Standard Library: Clause 20 - Utilities library 2020-02 (Prague)
172 `P1739R4 <https://wg21.link/P1739R4>`__ Avoid template bloat for safe_ranges in combination with "subrange-y" view adaptors 2020-02 (Prague) |Complete| 15.0 |ranges|
173 `P1831R1 <https://wg21.link/P1831R1>`__ Deprecating volatile: library 2020-02 (Prague)
174 `P1868R2 <https://wg21.link/P1868R2>`__ width: clarifying units of width and precision in std::format 2020-02 (Prague) |Complete| 14.0
175 `P1956R1 <https://wg21.link/P1956R1>`__ On the names of low-level bit manipulation functions 2020-02 (Prague) |Complete| 12.0
176 `P1957R2 <https://wg21.link/P1957R2>`__ Converting from ``T*``\ to bool should be considered narrowing (re: US 212) 2020-02 (Prague) |Complete| 18.0
177 `P1963R0 <https://wg21.link/P1963R0>`__ Fixing US 313 2020-02 (Prague)
178 `P1964R2 <https://wg21.link/P1964R2>`__ Wording for boolean-testable 2020-02 (Prague) |Complete| 13.0
179 `P1970R2 <https://wg21.link/P1970R2>`__ Consistency for size() functions: Add ranges::ssize 2020-02 (Prague) |Complete| 15.0 |ranges|
180 `P1973R1 <https://wg21.link/P1973R1>`__ Rename "_default_init" Functions, Rev1 2020-02 (Prague) |Complete| 16.0
181 `P1976R2 <https://wg21.link/P1976R2>`__ Fixed-size span construction from dynamic range 2020-02 (Prague) |Complete| 11.0 |ranges|
182 `P1981R0 <https://wg21.link/P1981R0>`__ Rename leap to leap_second 2020-02 (Prague) |Complete| 19.0 |chrono|
183 `P1982R0 <https://wg21.link/P1982R0>`__ Rename link to time_zone_link 2020-02 (Prague) |Complete| 19.0 |chrono|
184 `P1983R0 <https://wg21.link/P1983R0>`__ Wording for GB301, US296, US292, US291, and US283 2020-02 (Prague) |Complete| 15.0 |ranges|
185 `P1994R1 <https://wg21.link/P1994R1>`__ elements_view needs its own sentinel 2020-02 (Prague) |Complete| 16.0 |ranges|
186 `P2002R1 <https://wg21.link/P2002R1>`__ Defaulted comparison specification cleanups 2020-02 (Prague) |Complete| 7.0
187 `P2045R1 <https://wg21.link/P2045R1>`__ Missing Mandates for the standard library 2020-02 (Prague)
188 `P2085R0 <https://wg21.link/P2085R0>`__ Consistent defaulted comparisons 2020-02 (Prague)
189 `P2091R0 <https://wg21.link/P2091R0>`__ Issues with range access CPOs 2020-02 (Prague) |Complete| 15.0 |ranges|
190 `P2101R0 <https://wg21.link/P2101R0>`__ P2101R0: 'Models' subsumes 'satisfies' (Wording for US298 and US300) 2020-02 (Prague) |Nothing To Do|
191 `P2102R0 <https://wg21.link/P2102R0>`__ Make 'implicit expression variations' more explicit (Wording for US185) 2020-02 (Prague) |Complete| 15.0
192 `P2106R0 <https://wg21.link/P2106R0>`__ Alternative wording for GB315 and GB316 2020-02 (Prague) |Complete| 15.0 |ranges|
193 `P2116R0 <https://wg21.link/P2116R0>`__ Remove tuple-like protocol support from fixed-extent span 2020-02 (Prague) |Complete| 11.0
194
195 `P2231R1 <https://wg21.link/P2231R1>`__ Missing constexpr in std::optional and std::variant 2021-06 (Virtual) |Complete| 19.0
196 `P2325R3 <https://wg21.link/P2325R3>`__ Views should not be required to be default constructible 2021-06 (Virtual) |Complete| 16.0 |ranges|
197 `P2210R2 <https://wg21.link/P2210R2>`__ Superior String Splitting 2021-06 (Virtual) |Complete| 16.0 |ranges|
198 `P2216R3 <https://wg21.link/P2216R3>`__ std::format improvements 2021-06 (Virtual) |Complete| 15.0
199 `P2281R1 <https://wg21.link/P2281R1>`__ Clarifying range adaptor objects 2021-06 (Virtual) |Complete| 14.0 |ranges|
200 `P2328R1 <https://wg21.link/P2328R1>`__ join_view should join all views of ranges 2021-06 (Virtual) |Complete| 15.0 |ranges|
201 `P2367R0 <https://wg21.link/P2367R0>`__ Remove misuses of list-initialization from Clause 24 2021-06 (Virtual) |Complete| 15.0 |ranges|
202
203 `P2372R3 <https://wg21.link/P2372R3>`__ Fixing locale handling in chrono formatters 2021-10 (Virtual) |In Progress|
204 `P2415R2 <https://wg21.link/P2415R2>`__ What is a ``view`` 2021-10 (Virtual) |Complete| 14.0 |ranges|
205 `P2418R2 <https://wg21.link/P2418R2>`__ Add support for ``std::generator``-like types to ``std::format`` 2021-10 (Virtual) |Complete| 15.0
206 `P2432R1 <https://wg21.link/P2432R1>`__ Fix ``istream_view`` 2021-10 (Virtual) |Complete| 16.0 |ranges|

View File

@ -26,8 +26,6 @@ The groups that have contributed papers:
.. note:: "Nothing to do" means that no library changes were needed to implement this change.
.. _paper-status-cxx23:
Paper Status
====================================
@ -36,24 +34,6 @@ Paper Status
:header-rows: 1
:widths: auto
.. note::
.. [#note-P0533R9] P0533R9: ``isfinite``, ``isinf``, ``isnan`` and ``isnormal`` are implemented.
.. [#note-P1413R3] P1413R3: ``std::aligned_storage_t`` and ``std::aligned_union_t`` are marked deprecated, but
clang doesn't issue a diagnostic for deprecated using template declarations.
.. [#note-P2520R0] P2520R0: Libc++ implemented this paper as a DR in C++20 as well.
.. [#note-P2711R1] P2711R1: ``join_with_view`` hasn't been done yet since this type isn't implemented yet.
.. [#note-P2770R0] P2770R0: ``join_with_view`` hasn't been done yet since this type isn't implemented yet.
.. [#note-P2609R3] P2609R3: Libc++ implemented this paper as a DR in C++20 as well. (MSVC STL does the same.)
.. [#note-LWG3494] LWG3494: That LWG issue was superseded by `P2017R1 <https://wg21.link/P2017R1>`__.
.. [#note-LWG3481] LWG3481: That LWG issue was superseded by `P2415R2 <https://wg21.link/P2415R2>`__.
.. [#note-LWG3265] LWG3265: That LWG issue was resolved by `LWG3435 <https://wg21.link/LWG3435>`__.
.. [#note-P2693R1] P2693R1: The formatter for ``std::thread::id`` is implemented.
The formatter for ``stacktrace`` is not implemented, since ``stacktrace`` is
not implemented yet.
.. _issues-status-cxx23:
Library Working Group Issues Status
====================================
@ -61,9 +41,3 @@ Library Working Group Issues Status
:file: Cxx23Issues.csv
:header-rows: 1
:widths: auto
.. note::
.. [#note-LWG3750] LWG3750 Only ``__cpp_lib_format_ranges`` is fully implemented.
.. [#note-LWG3798] LWG3798: ``join_with_view``, ``zip_transform_view``, and ``adjacent_transform_view`` haven't been done yet since these types aren't implemented yet.
.. [#note-LWG3036] LWG3036: This issue was reverted by P2875R4

View File

@ -1,189 +1,189 @@
"Issue #","Issue Name","Meeting","Status","First released version","Labels"
"Issue #","Issue Name","Meeting","Status","First released version","Notes"
"`LWG2839 <https://wg21.link/LWG2839>`__","Self-move-assignment of library types, again","2020-11 (Virtual)","|Nothing To Do|","",""
"`LWG3117 <https://wg21.link/LWG3117>`__","Missing ``packaged_task`` deduction guides","2020-11 (Virtual)","|Complete|","16.0",""
"`LWG3143 <https://wg21.link/LWG3143>`__","``monotonic_buffer_resource`` growth policy is unclear","2020-11 (Virtual)","","",""
"`LWG3195 <https://wg21.link/LWG3195>`__","What is the stored pointer value of an empty ``weak_ptr``?","2020-11 (Virtual)","|Nothing To Do|","",""
"`LWG3211 <https://wg21.link/LWG3211>`__","``std::tuple<>`` should be trivially constructible","2020-11 (Virtual)","|Complete|","9.0",""
"`LWG3236 <https://wg21.link/LWG3236>`__","Random access iterator requirements lack limiting relational operators domain to comparing those from the same range","2020-11 (Virtual)","|Nothing To Do|","",""
"`LWG3265 <https://wg21.link/LWG3265>`__","``move_iterator``'s conversions are more broken after P1207","2020-11 (Virtual)","|Nothing To Do| [#note-LWG3265]_","",""
"`LWG3265 <https://wg21.link/LWG3265>`__","``move_iterator``'s conversions are more broken after P1207","2020-11 (Virtual)","|Nothing To Do|","","Resolved by `LWG3435 <https://wg21.link/LWG3435>`__"
"`LWG3435 <https://wg21.link/LWG3435>`__","``three_way_comparable_with<reverse_iterator<int*>, reverse_iterator<const int*>>``","2020-11 (Virtual)","|Complete|","13.0",""
"`LWG3432 <https://wg21.link/LWG3432>`__","Missing requirement for ``comparison_category``","2020-11 (Virtual)","|Complete|","16.0","|spaceship|"
"`LWG3447 <https://wg21.link/LWG3447>`__","Deduction guides for ``take_view`` and ``drop_view`` have different constraints","2020-11 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3450 <https://wg21.link/LWG3450>`__","The const overloads of ``take_while_view::begin/end`` are underconstrained","2020-11 (Virtual)","|Complete|","16.0","|ranges|"
"`LWG3432 <https://wg21.link/LWG3432>`__","Missing requirement for ``comparison_category``","2020-11 (Virtual)","|Complete|","16.0",""
"`LWG3447 <https://wg21.link/LWG3447>`__","Deduction guides for ``take_view`` and ``drop_view`` have different constraints","2020-11 (Virtual)","|Complete|","14.0",""
"`LWG3450 <https://wg21.link/LWG3450>`__","The const overloads of ``take_while_view::begin/end`` are underconstrained","2020-11 (Virtual)","|Complete|","16.0",""
"`LWG3464 <https://wg21.link/LWG3464>`__","``istream::gcount()`` can overflow","2020-11 (Virtual)","|Complete|","18.0",""
"`LWG2731 <https://wg21.link/LWG2731>`__","Existence of ``lock_guard<MutexTypes...>::mutex_type`` typedef unclear","2020-11 (Virtual)","|Complete|","5.0",""
"`LWG2743 <https://wg21.link/LWG2743>`__","P0083R3 ``node_handle`` private members missing ""exposition only"" comment","2020-11 (Virtual)","|Nothing To Do|","",""
"`LWG2820 <https://wg21.link/LWG2820>`__","Clarify ``<cstdint>`` macros","2020-11 (Virtual)","|Nothing To Do|","",""
"`LWG3120 <https://wg21.link/LWG3120>`__","Unclear behavior of ``monotonic_buffer_resource::release()``","2020-11 (Virtual)","","",""
"`LWG3170 <https://wg21.link/LWG3170>`__","``is_always_equal`` added to ``std::allocator`` makes the standard library treat derived types as always equal","2020-11 (Virtual)","|Complete|","18.0",""
"`LWG3036 <https://wg21.link/LWG3036>`__","``polymorphic_allocator::destroy`` is extraneous","2020-11 (Virtual)","|Nothing To Do| [#note-LWG3036]_","",""
"`LWG3036 <https://wg21.link/LWG3036>`__","``polymorphic_allocator::destroy`` is extraneous","2020-11 (Virtual)","|Nothing To Do|","","Reverted by P2875R4"
"`LWG3171 <https://wg21.link/LWG3171>`__","LWG2989 breaks ``directory_entry`` stream insertion","2020-11 (Virtual)","|Complete|","14.0",""
"`LWG3306 <https://wg21.link/LWG3306>`__","``ranges::advance`` violates its preconditions","2020-11 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3403 <https://wg21.link/LWG3403>`__","Domain of ``ranges::ssize(E)`` doesn't ``match ranges::size(E)``","2020-11 (Virtual)","","","|ranges|"
"`LWG3404 <https://wg21.link/LWG3404>`__","Finish removing subrange's conversions from pair-like","2020-11 (Virtual)","|Complete|","13.0","|ranges|"
"`LWG3405 <https://wg21.link/LWG3405>`__","``common_view``'s converting constructor is bad, too","2020-11 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3406 <https://wg21.link/LWG3406>`__","``elements_view::begin()`` and ``elements_view::end()`` have incompatible constraints","2020-11 (Virtual)","|Complete|","16.0","|ranges|"
"`LWG3306 <https://wg21.link/LWG3306>`__","``ranges::advance`` violates its preconditions","2020-11 (Virtual)","|Complete|","14.0",""
"`LWG3403 <https://wg21.link/LWG3403>`__","Domain of ``ranges::ssize(E)`` doesn't ``match ranges::size(E)``","2020-11 (Virtual)","","",""
"`LWG3404 <https://wg21.link/LWG3404>`__","Finish removing subrange's conversions from pair-like","2020-11 (Virtual)","|Complete|","13.0",""
"`LWG3405 <https://wg21.link/LWG3405>`__","``common_view``'s converting constructor is bad, too","2020-11 (Virtual)","|Complete|","14.0",""
"`LWG3406 <https://wg21.link/LWG3406>`__","``elements_view::begin()`` and ``elements_view::end()`` have incompatible constraints","2020-11 (Virtual)","|Complete|","16.0",""
"`LWG3419 <https://wg21.link/LWG3419>`__","[algorithms.requirements]/15 doesn't reserve as many rights as it intends to","2020-11 (Virtual)","|Nothing To Do|","",""
"`LWG3420 <https://wg21.link/LWG3420>`__","cpp17-iterator should check that the type looks like an iterator first","2020-11 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3421 <https://wg21.link/LWG3421>`__","Imperfect ADL emulation for boolean-testable","2020-11 (Virtual)","|Nothing To Do|","","|ranges|"
"`LWG3420 <https://wg21.link/LWG3420>`__","cpp17-iterator should check that the type looks like an iterator first","2020-11 (Virtual)","|Complete|","14.0",""
"`LWG3421 <https://wg21.link/LWG3421>`__","Imperfect ADL emulation for boolean-testable","2020-11 (Virtual)","|Nothing To Do|","",""
"`LWG3425 <https://wg21.link/LWG3425>`__","``condition_variable_any`` fails to constrain its Lock parameters","2020-11 (Virtual)","|Nothing To Do|","",""
"`LWG3426 <https://wg21.link/LWG3426>`__","``operator<=>(const unique_ptr<T, D>&, nullptr_t)`` can't get no satisfaction","2020-11 (Virtual)","|Complete|","16.0","|spaceship|"
"`LWG3427 <https://wg21.link/LWG3427>`__","``operator<=>(const shared_ptr<T>&, nullptr_t)`` definition ill-formed","2020-11 (Virtual)","|Complete|","16.0","|spaceship|"
"`LWG3428 <https://wg21.link/LWG3428>`__","``single_view``'s in place constructor should be explicit","2020-11 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3426 <https://wg21.link/LWG3426>`__","``operator<=>(const unique_ptr<T, D>&, nullptr_t)`` can't get no satisfaction","2020-11 (Virtual)","|Complete|","16.0",""
"`LWG3427 <https://wg21.link/LWG3427>`__","``operator<=>(const shared_ptr<T>&, nullptr_t)`` definition ill-formed","2020-11 (Virtual)","|Complete|","16.0",""
"`LWG3428 <https://wg21.link/LWG3428>`__","``single_view``'s in place constructor should be explicit","2020-11 (Virtual)","|Complete|","14.0",""
"`LWG3434 <https://wg21.link/LWG3434>`__","``ios_base`` never reclaims memory for iarray and parray","2020-11 (Virtual)","|Nothing To Do|","",""
"`LWG3437 <https://wg21.link/LWG3437>`__","``__cpp_lib_polymorphic_allocator`` is in the wrong header","2020-11 (Virtual)","|Complete|","14.0",""
"`LWG3446 <https://wg21.link/LWG3446>`__","``indirectly_readable_traits`` ambiguity for types with both ``value_type`` and ``element_type``","2020-11 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3448 <https://wg21.link/LWG3448>`__","``transform_view``'s ``sentinel<false>`` not comparable with ``iterator<true>``","2020-11 (Virtual)","","","|ranges|"
"`LWG3449 <https://wg21.link/LWG3449>`__","``take_view`` and ``take_while_view``'s ``sentinel<false>`` not comparable with their ``const iterator``","2020-11 (Virtual)","|Complete|","16.0","|ranges|"
"`LWG3453 <https://wg21.link/LWG3453>`__","Generic code cannot call ``ranges::advance(i, s)``","2020-11 (Virtual)","|Nothing To Do|","","|ranges|"
"`LWG3446 <https://wg21.link/LWG3446>`__","``indirectly_readable_traits`` ambiguity for types with both ``value_type`` and ``element_type``","2020-11 (Virtual)","|Complete|","14.0",""
"`LWG3448 <https://wg21.link/LWG3448>`__","``transform_view``'s ``sentinel<false>`` not comparable with ``iterator<true>``","2020-11 (Virtual)","","",""
"`LWG3449 <https://wg21.link/LWG3449>`__","``take_view`` and ``take_while_view``'s ``sentinel<false>`` not comparable with their ``const iterator``","2020-11 (Virtual)","|Complete|","16.0",""
"`LWG3453 <https://wg21.link/LWG3453>`__","Generic code cannot call ``ranges::advance(i, s)``","2020-11 (Virtual)","|Nothing To Do|","",""
"`LWG3455 <https://wg21.link/LWG3455>`__","Incorrect Postconditions on ``unique_ptr`` move assignment","2020-11 (Virtual)","|Nothing To Do|","",""
"`LWG3460 <https://wg21.link/LWG3460>`__","Unimplementable ``noop_coroutine_handle`` guarantees","2020-11 (Virtual)","|Complete|","14.0",""
"`LWG3461 <https://wg21.link/LWG3461>`__","``convertible_to``'s description mishandles cv-qualified ``void``","2020-11 (Virtual)","|Nothing To Do|","",""
"`LWG3465 <https://wg21.link/LWG3465>`__","``compare_partial_order_fallback`` requires ``F < E``","2020-11 (Virtual)","|Complete|","14.0","|spaceship|"
"`LWG3465 <https://wg21.link/LWG3465>`__","``compare_partial_order_fallback`` requires ``F < E``","2020-11 (Virtual)","|Complete|","14.0",""
"`LWG3466 <https://wg21.link/LWG3466>`__","Specify the requirements for ``promise``/``future``/``shared_future`` consistently","2020-11 (Virtual)","|Nothing To Do|","",""
"`LWG3467 <https://wg21.link/LWG3467>`__","``bool`` can't be an integer-like type","2020-11 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3472 <https://wg21.link/LWG3472>`__","``counted_iterator`` is missing preconditions","2020-11 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3473 <https://wg21.link/LWG3473>`__","Normative encouragement in non-normative note","2020-11 (Virtual)","|Complete|","15.0","|format|"
"`LWG3474 <https://wg21.link/LWG3474>`__","Nesting ``join_views`` is broken because of CTAD","2020-11 (Virtual)","|Complete|","15.0","|ranges|"
"`LWG3467 <https://wg21.link/LWG3467>`__","``bool`` can't be an integer-like type","2020-11 (Virtual)","|Complete|","14.0",""
"`LWG3472 <https://wg21.link/LWG3472>`__","``counted_iterator`` is missing preconditions","2020-11 (Virtual)","|Complete|","14.0",""
"`LWG3473 <https://wg21.link/LWG3473>`__","Normative encouragement in non-normative note","2020-11 (Virtual)","|Complete|","15.0",""
"`LWG3474 <https://wg21.link/LWG3474>`__","Nesting ``join_views`` is broken because of CTAD","2020-11 (Virtual)","|Complete|","15.0",""
"`LWG3476 <https://wg21.link/LWG3476>`__","``thread`` and ``jthread`` constructors require that the parameters be move-constructible but never move construct the parameters","2020-11 (Virtual)","","",""
"`LWG3477 <https://wg21.link/LWG3477>`__","Simplify constraints for ``semiregular-box``","2020-11 (Virtual)","|Complete|","13.0","|ranges|"
"`LWG3482 <https://wg21.link/LWG3482>`__","``drop_view``'s const begin should additionally require ``sized_range``","2020-11 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3483 <https://wg21.link/LWG3483>`__","``transform_view::iterator``'s difference is overconstrained","2020-11 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3477 <https://wg21.link/LWG3477>`__","Simplify constraints for ``semiregular-box``","2020-11 (Virtual)","|Complete|","13.0",""
"`LWG3482 <https://wg21.link/LWG3482>`__","``drop_view``'s const begin should additionally require ``sized_range``","2020-11 (Virtual)","|Complete|","14.0",""
"`LWG3483 <https://wg21.link/LWG3483>`__","``transform_view::iterator``'s difference is overconstrained","2020-11 (Virtual)","|Complete|","14.0",""
"","","","","",""
"`LWG3391 <https://wg21.link/LWG3391>`__","Problems with ``counted_iterator``/``move_iterator::base() const &``","2021-02 (Virtual)","","","|ranges|"
"`LWG3433 <https://wg21.link/LWG3433>`__","``subrange::advance(n)`` has UB when ``n < 0``","2021-02 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3490 <https://wg21.link/LWG3490>`__","``ranges::drop_while_view::begin()`` is missing a precondition","2021-02 (Virtual)","|Nothing To Do|","","|ranges|"
"`LWG3492 <https://wg21.link/LWG3492>`__","Minimal improvements to ``elements_view::iterator``","2021-02 (Virtual)","|Complete|","16.0","|ranges|"
"`LWG3494 <https://wg21.link/LWG3494>`__","Allow ranges to be conditionally borrowed","2021-02 (Virtual)","|Nothing To Do| [#note-LWG3494]_","","|ranges|"
"`LWG3391 <https://wg21.link/LWG3391>`__","Problems with ``counted_iterator``/``move_iterator::base() const &``","2021-02 (Virtual)","","",""
"`LWG3433 <https://wg21.link/LWG3433>`__","``subrange::advance(n)`` has UB when ``n < 0``","2021-02 (Virtual)","|Complete|","14.0",""
"`LWG3490 <https://wg21.link/LWG3490>`__","``ranges::drop_while_view::begin()`` is missing a precondition","2021-02 (Virtual)","|Nothing To Do|","",""
"`LWG3492 <https://wg21.link/LWG3492>`__","Minimal improvements to ``elements_view::iterator``","2021-02 (Virtual)","|Complete|","16.0",""
"`LWG3494 <https://wg21.link/LWG3494>`__","Allow ranges to be conditionally borrowed","2021-02 (Virtual)","|Nothing To Do|","","Superseded by `P2017R1 <https://wg21.link/P2017R1>`__"
"`LWG3495 <https://wg21.link/LWG3495>`__","``constexpr launder`` makes pointers to inactive members of unions usable","2021-02 (Virtual)","|Nothing To Do|","",""
"`LWG3500 <https://wg21.link/LWG3500>`__","``join_view::iterator::operator->()`` is bogus","2021-02 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3502 <https://wg21.link/LWG3502>`__","``elements_view`` should not be allowed to return dangling reference","2021-02 (Virtual)","|Complete|","16.0","|ranges|"
"`LWG3505 <https://wg21.link/LWG3505>`__","``split_view::outer-iterator::operator++`` misspecified","2021-02 (Virtual)","","","|ranges|"
"`LWG3500 <https://wg21.link/LWG3500>`__","``join_view::iterator::operator->()`` is bogus","2021-02 (Virtual)","|Complete|","14.0",""
"`LWG3502 <https://wg21.link/LWG3502>`__","``elements_view`` should not be allowed to return dangling reference","2021-02 (Virtual)","|Complete|","16.0",""
"`LWG3505 <https://wg21.link/LWG3505>`__","``split_view::outer-iterator::operator++`` misspecified","2021-02 (Virtual)","","",""
"","","","","",""
"`LWG2774 <https://wg21.link/LWG2774>`__","``std::function`` construction vs assignment","2021-06 (Virtual)","","",""
"`LWG2818 <https://wg21.link/LWG2818>`__","``::std::`` everywhere rule needs tweaking","2021-06 (Virtual)","|Nothing To Do|","",""
"`LWG2997 <https://wg21.link/LWG2997>`__","LWG 491 and the specification of ``{forward_,}list::unique``","2021-06 (Virtual)","","",""
"`LWG3410 <https://wg21.link/LWG3410>`__","``lexicographical_compare_three_way`` is overspecified","2021-06 (Virtual)","|Complete|","17.0","|spaceship|"
"`LWG3410 <https://wg21.link/LWG3410>`__","``lexicographical_compare_three_way`` is overspecified","2021-06 (Virtual)","|Complete|","17.0",""
"`LWG3430 <https://wg21.link/LWG3430>`__","``std::fstream`` & co. should be constructible from string_view","2021-06 (Virtual)","|Complete|","19.0",""
"`LWG3462 <https://wg21.link/LWG3462>`__","§[formatter.requirements]: Formatter requirements forbid use of ``fc.arg()``","2021-06 (Virtual)","|Nothing To Do|","","|format|"
"`LWG3481 <https://wg21.link/LWG3481>`__","``viewable_range`` mishandles lvalue move-only views","2021-06 (Virtual)","|Nothing To Do| [#note-LWG3481]_","","|ranges|"
"`LWG3462 <https://wg21.link/LWG3462>`__","§[formatter.requirements]: Formatter requirements forbid use of ``fc.arg()``","2021-06 (Virtual)","|Nothing To Do|","",""
"`LWG3481 <https://wg21.link/LWG3481>`__","``viewable_range`` mishandles lvalue move-only views","2021-06 (Virtual)","|Nothing To Do|","","Superseded by `P2415R2 <https://wg21.link/P2415R2>`__"
"`LWG3506 <https://wg21.link/LWG3506>`__","Missing allocator-extended constructors for ``priority_queue``","2021-06 (Virtual)","|Complete|","14.0",""
"`LWG3517 <https://wg21.link/LWG3517>`__","``join_view::iterator``'s ``iter_swap`` is underconstrained","2021-06 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3517 <https://wg21.link/LWG3517>`__","``join_view::iterator``'s ``iter_swap`` is underconstrained","2021-06 (Virtual)","|Complete|","14.0",""
"`LWG3518 <https://wg21.link/LWG3518>`__","Exception requirements on char trait operations unclear","2021-06 (Virtual)","|Nothing To Do|","",""
"`LWG3519 <https://wg21.link/LWG3519>`__","Incomplete synopses for ``<random>`` classes","2021-06 (Virtual)","","",""
"`LWG3520 <https://wg21.link/LWG3520>`__","``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator``","2021-06 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3520 <https://wg21.link/LWG3520>`__","``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator``","2021-06 (Virtual)","|Complete|","14.0",""
"`LWG3521 <https://wg21.link/LWG3521>`__","Overly strict requirements on ``qsort`` and ``bsearch``","2021-06 (Virtual)","|Nothing To Do|","",""
"`LWG3522 <https://wg21.link/LWG3522>`__","Missing requirement on ``InputIterator`` template parameter for ``priority_queue`` constructors","2021-06 (Virtual)","|Complete|","14.0",""
"`LWG3523 <https://wg21.link/LWG3523>`__","``iota_view::sentinel`` is not always ``iota_view``'s sentinel","2021-06 (Virtual)","|Complete|","17.0","|ranges|"
"`LWG3523 <https://wg21.link/LWG3523>`__","``iota_view::sentinel`` is not always ``iota_view``'s sentinel","2021-06 (Virtual)","|Complete|","17.0",""
"`LWG3526 <https://wg21.link/LWG3526>`__","Return types of ``uses_allocator_construction_args`` unspecified","2021-06 (Virtual)","","",""
"`LWG3527 <https://wg21.link/LWG3527>`__","``uses_allocator_construction_args`` handles rvalue pairs of rvalue references incorrectly","2021-06 (Virtual)","","",""
"`LWG3528 <https://wg21.link/LWG3528>`__","``make_from_tuple`` can perform (the equivalent of) a C-style cast","2021-06 (Virtual)","|Complete|","19.0",""
"`LWG3529 <https://wg21.link/LWG3529>`__","``priority_queue(first, last)`` should construct ``c`` with ``(first, last)``","2021-06 (Virtual)","|Complete|","14.0",""
"`LWG3530 <https://wg21.link/LWG3530>`__","``BUILTIN-PTR-MEOW`` should not opt the type out of syntactic checks","2021-06 (Virtual)","","",""
"`LWG3532 <https://wg21.link/LWG3532>`__","``split_view<V, P>::inner-iterator<true>::operator++(int)`` should depend on ``Base``","2021-06 (Virtual)","","","|ranges|"
"`LWG3533 <https://wg21.link/LWG3533>`__","Make ``base() const &`` consistent across iterator wrappers that supports ``input_iterators``","2021-06 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3536 <https://wg21.link/LWG3536>`__","Should ``chrono::from_stream()`` assign zero to duration for failure?","2021-06 (Virtual)","","","|chrono|"
"`LWG3539 <https://wg21.link/LWG3539>`__","``format_to`` must not copy models of ``output_iterator<const charT&>``","2021-06 (Virtual)","|Complete|","14.0","|format|"
"`LWG3540 <https://wg21.link/LWG3540>`__","§[format.arg] There should be no const in ``basic_format_arg(const T* p)``","2021-06 (Virtual)","|Complete|","14.0","|format|"
"`LWG3541 <https://wg21.link/LWG3541>`__","``indirectly_readable_traits`` should be SFINAE-friendly for all types","2021-06 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3542 <https://wg21.link/LWG3542>`__","``basic_format_arg`` mishandles ``basic_string_view`` with custom traits","2021-06 (Virtual)","|Complete|","14.0","|format|"
"`LWG3543 <https://wg21.link/LWG3543>`__","Definition of when ``counted_iterators`` refer to the same sequence isn't quite right","2021-06 (Virtual)","|Nothing To Do|","","|ranges|"
"`LWG3544 <https://wg21.link/LWG3544>`__","``format-arg-store::args`` is unintentionally not exposition-only","2021-06 (Virtual)","|Complete|","14.0","|format|"
"`LWG3546 <https://wg21.link/LWG3546>`__","``common_iterator``'s postfix-proxy is not quite right","2021-06 (Virtual)","","","|ranges|"
"`LWG3532 <https://wg21.link/LWG3532>`__","``split_view<V, P>::inner-iterator<true>::operator++(int)`` should depend on ``Base``","2021-06 (Virtual)","","",""
"`LWG3533 <https://wg21.link/LWG3533>`__","Make ``base() const &`` consistent across iterator wrappers that supports ``input_iterators``","2021-06 (Virtual)","|Complete|","14.0",""
"`LWG3536 <https://wg21.link/LWG3536>`__","Should ``chrono::from_stream()`` assign zero to duration for failure?","2021-06 (Virtual)","","",""
"`LWG3539 <https://wg21.link/LWG3539>`__","``format_to`` must not copy models of ``output_iterator<const charT&>``","2021-06 (Virtual)","|Complete|","14.0",""
"`LWG3540 <https://wg21.link/LWG3540>`__","§[format.arg] There should be no const in ``basic_format_arg(const T* p)``","2021-06 (Virtual)","|Complete|","14.0",""
"`LWG3541 <https://wg21.link/LWG3541>`__","``indirectly_readable_traits`` should be SFINAE-friendly for all types","2021-06 (Virtual)","|Complete|","14.0",""
"`LWG3542 <https://wg21.link/LWG3542>`__","``basic_format_arg`` mishandles ``basic_string_view`` with custom traits","2021-06 (Virtual)","|Complete|","14.0",""
"`LWG3543 <https://wg21.link/LWG3543>`__","Definition of when ``counted_iterators`` refer to the same sequence isn't quite right","2021-06 (Virtual)","|Nothing To Do|","",""
"`LWG3544 <https://wg21.link/LWG3544>`__","``format-arg-store::args`` is unintentionally not exposition-only","2021-06 (Virtual)","|Complete|","14.0",""
"`LWG3546 <https://wg21.link/LWG3546>`__","``common_iterator``'s postfix-proxy is not quite right","2021-06 (Virtual)","","",""
"`LWG3548 <https://wg21.link/LWG3548>`__","``shared_ptr`` construction from ``unique_ptr`` should move (not copy) the deleter","2021-06 (Virtual)","|Complete|","15.0",""
"`LWG3549 <https://wg21.link/LWG3549>`__","``view_interface`` is overspecified to derive from ``view_base``","2021-06 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3551 <https://wg21.link/LWG3551>`__","``borrowed_{iterator,subrange}_t`` are overspecified","2021-06 (Virtual)","|Nothing To Do|","","|ranges|"
"`LWG3549 <https://wg21.link/LWG3549>`__","``view_interface`` is overspecified to derive from ``view_base``","2021-06 (Virtual)","|Complete|","14.0",""
"`LWG3551 <https://wg21.link/LWG3551>`__","``borrowed_{iterator,subrange}_t`` are overspecified","2021-06 (Virtual)","|Nothing To Do|","",""
"`LWG3552 <https://wg21.link/LWG3552>`__","Parallel specialized memory algorithms should require forward iterators","2021-06 (Virtual)","","",""
"`LWG3553 <https://wg21.link/LWG3553>`__","Useless constraint in ``split_view::outer-iterator::value_type::begin()``","2021-06 (Virtual)","","","|ranges|"
"`LWG3555 <https://wg21.link/LWG3555>`__","``{transform,elements}_view::iterator::iterator_concept`` should consider const-qualification of the underlying range","2021-06 (Virtual)","","","|ranges|"
"`LWG3553 <https://wg21.link/LWG3553>`__","Useless constraint in ``split_view::outer-iterator::value_type::begin()``","2021-06 (Virtual)","","",""
"`LWG3555 <https://wg21.link/LWG3555>`__","``{transform,elements}_view::iterator::iterator_concept`` should consider const-qualification of the underlying range","2021-06 (Virtual)","","",""
"","","","","",""
"`LWG2191 <https://wg21.link/LWG2191>`__","Incorrect specification of ``match_results(match_results&&)``","2021-10 (Virtual)","|Nothing To Do|","",""
"`LWG2381 <https://wg21.link/LWG2381>`__","Inconsistency in parsing floating point numbers","2021-10 (Virtual)","|Complete|","19.0",""
"`LWG2762 <https://wg21.link/LWG2762>`__","``unique_ptr operator*()`` should be ``noexcept``","2021-10 (Virtual)","|Complete|","19.0",""
"`LWG3121 <https://wg21.link/LWG3121>`__","``tuple`` constructor constraints for ``UTypes&&...`` overloads","2021-10 (Virtual)","","",""
"`LWG3123 <https://wg21.link/LWG3123>`__","``duration`` constructor from representation shouldn't be effectively non-throwing","2021-10 (Virtual)","","","|chrono|"
"`LWG3123 <https://wg21.link/LWG3123>`__","``duration`` constructor from representation shouldn't be effectively non-throwing","2021-10 (Virtual)","","",""
"`LWG3146 <https://wg21.link/LWG3146>`__","Excessive unwrapping in ``std::ref/cref``","2021-10 (Virtual)","|Complete|","14.0",""
"`LWG3152 <https://wg21.link/LWG3152>`__","``common_type`` and ``common_reference`` have flaws in common","2021-10 (Virtual)","","",""
"`LWG3293 <https://wg21.link/LWG3293>`__","``move_iterator operator+()`` has incorrect constraints","2021-10 (Virtual)","|Complete|","15.0",""
"`LWG3361 <https://wg21.link/LWG3361>`__","``safe_range<SomeRange&>`` case","2021-10 (Virtual)","|Nothing To Do|","","|ranges|"
"`LWG3392 <https://wg21.link/LWG3392>`__","``ranges::distance()`` cannot be used on a move-only iterator with a sized sentinel","2021-10 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3407 <https://wg21.link/LWG3407>`__","Some problems with the wording changes of P1739R4","2021-10 (Virtual)","|Complete|","15.0","|ranges|"
"`LWG3361 <https://wg21.link/LWG3361>`__","``safe_range<SomeRange&>`` case","2021-10 (Virtual)","|Nothing To Do|","",""
"`LWG3392 <https://wg21.link/LWG3392>`__","``ranges::distance()`` cannot be used on a move-only iterator with a sized sentinel","2021-10 (Virtual)","|Complete|","14.0",""
"`LWG3407 <https://wg21.link/LWG3407>`__","Some problems with the wording changes of P1739R4","2021-10 (Virtual)","|Complete|","15.0",""
"`LWG3422 <https://wg21.link/LWG3422>`__","Issues of ``seed_seq``'s constructors","2021-10 (Virtual)","|Complete|","14.0",""
"`LWG3470 <https://wg21.link/LWG3470>`__","``convertible-to-non-slicing`` seems to reject valid case","2021-10 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3480 <https://wg21.link/LWG3480>`__","``directory_iterator`` and ``recursive_directory_iterator`` are not C++20 ranges","2021-10 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3470 <https://wg21.link/LWG3470>`__","``convertible-to-non-slicing`` seems to reject valid case","2021-10 (Virtual)","|Complete|","14.0",""
"`LWG3480 <https://wg21.link/LWG3480>`__","``directory_iterator`` and ``recursive_directory_iterator`` are not C++20 ranges","2021-10 (Virtual)","|Complete|","14.0",""
"`LWG3498 <https://wg21.link/LWG3498>`__","Inconsistent ``noexcept``-specifiers for ``basic_syncbuf``","2021-10 (Virtual)","","",""
"`LWG3535 <https://wg21.link/LWG3535>`__","``join_view::iterator::iterator_category`` and ``::iterator_concept`` lie","2021-10 (Virtual)","|Complete|","15.0","|ranges|"
"`LWG3554 <https://wg21.link/LWG3554>`__","``chrono::parse`` needs ``const charT*`` and ``basic_string_view<charT>`` overloads","2021-10 (Virtual)","","","|chrono|"
"`LWG3535 <https://wg21.link/LWG3535>`__","``join_view::iterator::iterator_category`` and ``::iterator_concept`` lie","2021-10 (Virtual)","|Complete|","15.0",""
"`LWG3554 <https://wg21.link/LWG3554>`__","``chrono::parse`` needs ``const charT*`` and ``basic_string_view<charT>`` overloads","2021-10 (Virtual)","","",""
"`LWG3557 <https://wg21.link/LWG3557>`__","The ``static_cast`` expression in ``convertible_to`` has the wrong operand","2021-10 (Virtual)","|Complete|","14.0",""
"`LWG3559 <https://wg21.link/LWG3559>`__","Semantic requirements of ``sized_range`` is circular","2021-10 (Virtual)","|Nothing To Do|","","|ranges|"
"`LWG3560 <https://wg21.link/LWG3560>`__","``ranges::equal`` and ``ranges::is_permutation`` should short-circuit for ``sized_ranges``","2021-10 (Virtual)","","","|ranges|"
"`LWG3559 <https://wg21.link/LWG3559>`__","Semantic requirements of ``sized_range`` is circular","2021-10 (Virtual)","|Nothing To Do|","",""
"`LWG3560 <https://wg21.link/LWG3560>`__","``ranges::equal`` and ``ranges::is_permutation`` should short-circuit for ``sized_ranges``","2021-10 (Virtual)","","",""
"`LWG3561 <https://wg21.link/LWG3561>`__","Issue with internal counter in ``discard_block_engine``","2021-10 (Virtual)","","",""
"`LWG3563 <https://wg21.link/LWG3563>`__","``keys_view`` example is broken","2021-10 (Virtual)","","","|ranges|"
"`LWG3566 <https://wg21.link/LWG3566>`__","Constraint recursion for ``operator<=>(optional<T>, U)``","2021-10 (Virtual)","|Complete|","17.0","|spaceship|"
"`LWG3567 <https://wg21.link/LWG3567>`__","Formatting move-only iterators take two","2021-10 (Virtual)","|Complete|","16.0","|format| |ranges|"
"`LWG3568 <https://wg21.link/LWG3568>`__","``basic_istream_view`` needs to initialize ``value_``","2021-10 (Virtual)","|Complete|","16.0","|ranges|"
"`LWG3563 <https://wg21.link/LWG3563>`__","``keys_view`` example is broken","2021-10 (Virtual)","","",""
"`LWG3566 <https://wg21.link/LWG3566>`__","Constraint recursion for ``operator<=>(optional<T>, U)``","2021-10 (Virtual)","|Complete|","17.0",""
"`LWG3567 <https://wg21.link/LWG3567>`__","Formatting move-only iterators take two","2021-10 (Virtual)","|Complete|","16.0",""
"`LWG3568 <https://wg21.link/LWG3568>`__","``basic_istream_view`` needs to initialize ``value_``","2021-10 (Virtual)","|Complete|","16.0",""
"`LWG3570 <https://wg21.link/LWG3570>`__","``basic_osyncstream::emit`` should be an unformatted output function","2021-10 (Virtual)","|Complete|","18.0",""
"`LWG3571 <https://wg21.link/LWG3571>`__","``flush_emit`` should set ``badbit`` if the ``emit`` call fails","2021-10 (Virtual)","","",""
"`LWG3572 <https://wg21.link/LWG3572>`__","``copyable-box`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3572 <https://wg21.link/LWG3572>`__","``copyable-box`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14.0",""
"`LWG3573 <https://wg21.link/LWG3573>`__","Missing Throws element for ``basic_string_view(It begin, End end)``","2021-10 (Virtual)","|Complete|","14.0",""
"`LWG3574 <https://wg21.link/LWG3574>`__","``common_iterator`` should be completely ``constexpr``-able","2021-10 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3580 <https://wg21.link/LWG3580>`__","``iota_view``'s ``iterator``'s binary ``operator+`` should be improved","2021-10 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3581 <https://wg21.link/LWG3581>`__","The range constructor makes ``basic_string_view`` not trivially move constructible","2021-10 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3574 <https://wg21.link/LWG3574>`__","``common_iterator`` should be completely ``constexpr``-able","2021-10 (Virtual)","|Complete|","14.0",""
"`LWG3580 <https://wg21.link/LWG3580>`__","``iota_view``'s ``iterator``'s binary ``operator+`` should be improved","2021-10 (Virtual)","|Complete|","14.0",""
"`LWG3581 <https://wg21.link/LWG3581>`__","The range constructor makes ``basic_string_view`` not trivially move constructible","2021-10 (Virtual)","|Complete|","14.0",""
"`LWG3585 <https://wg21.link/LWG3585>`__","``variant`` converting assignment with immovable alternative","2021-10 (Virtual)","","",""
"`LWG3589 <https://wg21.link/LWG3589>`__","The ``const`` lvalue reference overload of ``get`` for ``subrange`` does not constrain ``I`` to be ``copyable`` when ``N == 0``","2021-10 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3590 <https://wg21.link/LWG3590>`__","``split_view::base() const &`` is overconstrained","2021-10 (Virtual)","|Complete|","16.0","|ranges|"
"`LWG3591 <https://wg21.link/LWG3591>`__","``lazy_split_view<input_view>::inner-iterator::base() &&`` invalidates outer iterators","2021-10 (Virtual)","","","|ranges|"
"`LWG3592 <https://wg21.link/LWG3592>`__","``lazy_split_view`` needs to check the simpleness of Pattern","2021-10 (Virtual)","","","|ranges|"
"`LWG3593 <https://wg21.link/LWG3593>`__","Several iterators' ``base() const &`` and ``lazy_split_view::outer-iterator::value_type::end()`` missing ``noexcept``","2021-10 (Virtual)","","","|ranges|"
"`LWG3595 <https://wg21.link/LWG3595>`__","Exposition-only classes proxy and postfix-proxy for ``common_iterator`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3589 <https://wg21.link/LWG3589>`__","The ``const`` lvalue reference overload of ``get`` for ``subrange`` does not constrain ``I`` to be ``copyable`` when ``N == 0``","2021-10 (Virtual)","|Complete|","14.0",""
"`LWG3590 <https://wg21.link/LWG3590>`__","``split_view::base() const &`` is overconstrained","2021-10 (Virtual)","|Complete|","16.0",""
"`LWG3591 <https://wg21.link/LWG3591>`__","``lazy_split_view<input_view>::inner-iterator::base() &&`` invalidates outer iterators","2021-10 (Virtual)","","",""
"`LWG3592 <https://wg21.link/LWG3592>`__","``lazy_split_view`` needs to check the simpleness of Pattern","2021-10 (Virtual)","","",""
"`LWG3593 <https://wg21.link/LWG3593>`__","Several iterators' ``base() const &`` and ``lazy_split_view::outer-iterator::value_type::end()`` missing ``noexcept``","2021-10 (Virtual)","","",""
"`LWG3595 <https://wg21.link/LWG3595>`__","Exposition-only classes proxy and postfix-proxy for ``common_iterator`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14.0",""
"","","","","",""
"`LWG3088 <https://wg21.link/LWG3088>`__","``forward_list::merge`` behaviour unclear when passed ``*this``","2022-02 (Virtual)","","",""
"`LWG3471 <https://wg21.link/LWG3471>`__","``polymorphic_allocator::allocate`` does not satisfy ``Cpp17Allocator`` requirements","2022-02 (Virtual)","","",""
"`LWG3525 <https://wg21.link/LWG3525>`__","``uses_allocator_construction_args`` fails to handle types convertible to ``pair``","2022-02 (Virtual)","","",""
"`LWG3598 <https://wg21.link/LWG3598>`__","``system_category().default_error_condition(0)`` is underspecified","2022-02 (Virtual)","","",""
"`LWG3601 <https://wg21.link/LWG3601>`__","common_iterator's postfix-proxy needs ``indirectly_readable`` ","2022-02 (Virtual)","","","|ranges|"
"`LWG3607 <https://wg21.link/LWG3607>`__","``contiguous_iterator`` should not be allowed to have custom ``iter_move`` and ``iter_swap`` behavior","2022-02 (Virtual)","|Nothing To Do|","","|ranges|"
"`LWG3610 <https://wg21.link/LWG3610>`__","``iota_view::size`` sometimes rejects integer-class types","2022-02 (Virtual)","","","|ranges|"
"`LWG3612 <https://wg21.link/LWG3612>`__","Inconsistent pointer alignment in ``std::format`` ","2022-02 (Virtual)","|Complete|","14.0","|format|"
"`LWG3601 <https://wg21.link/LWG3601>`__","common_iterator's postfix-proxy needs ``indirectly_readable`` ","2022-02 (Virtual)","","",""
"`LWG3607 <https://wg21.link/LWG3607>`__","``contiguous_iterator`` should not be allowed to have custom ``iter_move`` and ``iter_swap`` behavior","2022-02 (Virtual)","|Nothing To Do|","",""
"`LWG3610 <https://wg21.link/LWG3610>`__","``iota_view::size`` sometimes rejects integer-class types","2022-02 (Virtual)","","",""
"`LWG3612 <https://wg21.link/LWG3612>`__","Inconsistent pointer alignment in ``std::format`` ","2022-02 (Virtual)","|Complete|","14.0",""
"`LWG3616 <https://wg21.link/LWG3616>`__","LWG 3498 seems to miss the non-member ``swap`` for ``basic_syncbuf`` ","2022-02 (Virtual)","|Complete|","18.0",""
"`LWG3618 <https://wg21.link/LWG3618>`__","Unnecessary ``iter_move`` for ``transform_view::iterator`` ","2022-02 (Virtual)","|Complete|","19.0","|ranges|"
"`LWG3619 <https://wg21.link/LWG3619>`__","Specification of ``vformat_to`` contains ill-formed ``formatted_size`` calls","2022-02 (Virtual)","|Nothing To Do|","","|format|"
"`LWG3618 <https://wg21.link/LWG3618>`__","Unnecessary ``iter_move`` for ``transform_view::iterator`` ","2022-02 (Virtual)","|Complete|","19.0",""
"`LWG3619 <https://wg21.link/LWG3619>`__","Specification of ``vformat_to`` contains ill-formed ``formatted_size`` calls","2022-02 (Virtual)","|Nothing To Do|","",""
"`LWG3621 <https://wg21.link/LWG3621>`__","Remove feature-test macro ``__cpp_lib_monadic_optional`` ","2022-02 (Virtual)","|Complete|","15.0",""
"`LWG3632 <https://wg21.link/LWG3632>`__","``unique_ptr`` ""Mandates: This constructor is not selected by class template argument deduction""","2022-02 (Virtual)","|Nothing To Do|","",""
"`LWG3643 <https://wg21.link/LWG3643>`__","Missing ``constexpr`` in ``std::counted_iterator`` ","2022-02 (Virtual)","|Complete|","19.0","|ranges|"
"`LWG3648 <https://wg21.link/LWG3648>`__","``format`` should not print ``bool`` with ``'c'`` ","2022-02 (Virtual)","|Complete|","15.0","|format|"
"`LWG3643 <https://wg21.link/LWG3643>`__","Missing ``constexpr`` in ``std::counted_iterator`` ","2022-02 (Virtual)","|Complete|","19.0",""
"`LWG3648 <https://wg21.link/LWG3648>`__","``format`` should not print ``bool`` with ``'c'`` ","2022-02 (Virtual)","|Complete|","15.0",""
"`LWG3649 <https://wg21.link/LWG3649>`__","[fund.ts.v2] Reinstate and bump ``__cpp_lib_experimental_memory_resource`` feature test macro","2022-02 (Virtual)","","",""
"`LWG3650 <https://wg21.link/LWG3650>`__","Are ``std::basic_string`` 's ``iterator`` and ``const_iterator`` constexpr iterators?","2022-02 (Virtual)","|Nothing To Do|","",""
"`LWG3654 <https://wg21.link/LWG3654>`__","``basic_format_context::arg(size_t)`` should be ``noexcept`` ","2022-02 (Virtual)","|Complete|","15.0","|format|"
"`LWG3654 <https://wg21.link/LWG3654>`__","``basic_format_context::arg(size_t)`` should be ``noexcept`` ","2022-02 (Virtual)","|Complete|","15.0",""
"`LWG3657 <https://wg21.link/LWG3657>`__","``std::hash<std::filesystem::path>`` is not enabled","2022-02 (Virtual)","|Complete|","17.0",""
"`LWG3660 <https://wg21.link/LWG3660>`__","``iterator_traits<common_iterator>::pointer`` should conform to §[iterator.traits]","2022-02 (Virtual)","|Complete|","14.0","|ranges|"
"`LWG3660 <https://wg21.link/LWG3660>`__","``iterator_traits<common_iterator>::pointer`` should conform to §[iterator.traits]","2022-02 (Virtual)","|Complete|","14.0",""
"`LWG3661 <https://wg21.link/LWG3661>`__","``constinit atomic<shared_ptr<T>> a(nullptr);`` should work","2022-02 (Virtual)","","",""
"","","","","",""
"`LWG3564 <https://wg21.link/LWG3564>`__","``transform_view::iterator<true>::value_type`` and ``iterator_category`` should use ``const F&``","2022-07 (Virtual)","|Complete|","20.0","|ranges|"
"`LWG3564 <https://wg21.link/LWG3564>`__","``transform_view::iterator<true>::value_type`` and ``iterator_category`` should use ``const F&``","2022-07 (Virtual)","|Complete|","20.0",""
"`LWG3617 <https://wg21.link/LWG3617>`__","``function``/``packaged_task`` deduction guides and deducing ``this``","2022-07 (Virtual)","","",""
"`LWG3656 <https://wg21.link/LWG3656>`__","Inconsistent bit operations returning a count","2022-07 (Virtual)","|Complete|","15.0",""
"`LWG3659 <https://wg21.link/LWG3659>`__","Consider ``ATOMIC_FLAG_INIT`` undeprecation","2022-07 (Virtual)","|Complete|","15.0",""
"`LWG3670 <https://wg21.link/LWG3670>`__","``Cpp17InputIterators`` don't have integer-class difference types","2022-07 (Virtual)","","","|ranges|"
"`LWG3670 <https://wg21.link/LWG3670>`__","``Cpp17InputIterators`` don't have integer-class difference types","2022-07 (Virtual)","","",""
"`LWG3671 <https://wg21.link/LWG3671>`__","``atomic_fetch_xor`` missing from ``stdatomic.h``","2022-07 (Virtual)","|Complete|","20.0",""
"`LWG3672 <https://wg21.link/LWG3672>`__","``common_iterator::operator->()`` should return by value","2022-07 (Virtual)","|Complete|","19.0","|ranges|"
"`LWG3672 <https://wg21.link/LWG3672>`__","``common_iterator::operator->()`` should return by value","2022-07 (Virtual)","|Complete|","19.0",""
"`LWG3683 <https://wg21.link/LWG3683>`__","``operator==`` for ``polymorphic_allocator`` cannot deduce template argument in common cases","2022-07 (Virtual)","|Complete|","20.0",""
"`LWG3687 <https://wg21.link/LWG3687>`__","``expected<cv void, E>`` move constructor should move","2022-07 (Virtual)","|Complete|","16.0",""
"`LWG3692 <https://wg21.link/LWG3692>`__","``zip_view::iterator``'s ``operator<=>`` is overconstrained","2022-07 (Virtual)","","","|ranges| |spaceship|"
"`LWG3701 <https://wg21.link/LWG3701>`__","Make ``formatter<remove_cvref_t<const charT[N]>, charT>`` requirement explicit","2022-07 (Virtual)","|Complete|","15.0","|format|"
"`LWG3702 <https://wg21.link/LWG3702>`__","Should ``zip_transform_view::iterator`` remove ``operator<``","2022-07 (Virtual)","","","|ranges| |spaceship|"
"`LWG3692 <https://wg21.link/LWG3692>`__","``zip_view::iterator``'s ``operator<=>`` is overconstrained","2022-07 (Virtual)","","",""
"`LWG3701 <https://wg21.link/LWG3701>`__","Make ``formatter<remove_cvref_t<const charT[N]>, charT>`` requirement explicit","2022-07 (Virtual)","|Complete|","15.0",""
"`LWG3702 <https://wg21.link/LWG3702>`__","Should ``zip_transform_view::iterator`` remove ``operator<``","2022-07 (Virtual)","","",""
"`LWG3703 <https://wg21.link/LWG3703>`__","Missing requirements for ``expected<T, E>`` requires ``is_void<T>``","2022-07 (Virtual)","|Complete|","16.0",""
"`LWG3704 <https://wg21.link/LWG3704>`__","LWG 2059 added overloads that might be ill-formed for sets","2022-07 (Virtual)","","",""
"`LWG3705 <https://wg21.link/LWG3705>`__","Hashability shouldn't depend on basic_string's allocator","2022-07 (Virtual)","|Complete|","16.0",""
"`LWG3707 <https://wg21.link/LWG3707>`__","chunk_view::outer-iterator::value_type::size should return unsigned type","2022-07 (Virtual)","","","|ranges|"
"`LWG3708 <https://wg21.link/LWG3708>`__","``take_while_view::sentinel``'s conversion constructor should move","2022-07 (Virtual)","|Complete|","16.0","|ranges|"
"`LWG3707 <https://wg21.link/LWG3707>`__","chunk_view::outer-iterator::value_type::size should return unsigned type","2022-07 (Virtual)","","",""
"`LWG3708 <https://wg21.link/LWG3708>`__","``take_while_view::sentinel``'s conversion constructor should move","2022-07 (Virtual)","|Complete|","16.0",""
"`LWG3709 <https://wg21.link/LWG3709>`__","LWG-3703 was underly ambitious","2022-07 (Virtual)","","",""
"`LWG3710 <https://wg21.link/LWG3710>`__","The ``end`` of ``chunk_view`` for input ranges can be ``const``","2022-07 (Virtual)","","","|ranges|"
"`LWG3711 <https://wg21.link/LWG3711>`__","Missing preconditions for slide_view constructor","2022-07 (Virtual)","","","|ranges|"
"`LWG3712 <https://wg21.link/LWG3712>`__","``chunk_view`` and ``slide_view`` should not be ``default_initializable``","2022-07 (Virtual)","","","|ranges|"
"`LWG3710 <https://wg21.link/LWG3710>`__","The ``end`` of ``chunk_view`` for input ranges can be ``const``","2022-07 (Virtual)","","",""
"`LWG3711 <https://wg21.link/LWG3711>`__","Missing preconditions for slide_view constructor","2022-07 (Virtual)","","",""
"`LWG3712 <https://wg21.link/LWG3712>`__","``chunk_view`` and ``slide_view`` should not be ``default_initializable``","2022-07 (Virtual)","","",""
"`LWG3713 <https://wg21.link/LWG3713>`__","Sorted with respect to comparator (only)","2022-07 (Virtual)","|Nothing To Do|","",""
"`LWG3715 <https://wg21.link/LWG3715>`__","``view_interface::empty`` is overconstrained","2022-07 (Virtual)","|Complete|","19.0","|ranges|"
"`LWG3719 <https://wg21.link/LWG3719>`__","Directory iterators should be usable with default sentinel","2022-07 (Virtual)","|Complete|","17.0","|ranges|"
"`LWG3721 <https://wg21.link/LWG3721>`__","Allow an ``arg-id`` with a value of zero for ``width`` in ``std-format-spec``","2022-07 (Virtual)","|Complete|","16.0","|format|"
"`LWG3715 <https://wg21.link/LWG3715>`__","``view_interface::empty`` is overconstrained","2022-07 (Virtual)","|Complete|","19.0",""
"`LWG3719 <https://wg21.link/LWG3719>`__","Directory iterators should be usable with default sentinel","2022-07 (Virtual)","|Complete|","17.0",""
"`LWG3721 <https://wg21.link/LWG3721>`__","Allow an ``arg-id`` with a value of zero for ``width`` in ``std-format-spec``","2022-07 (Virtual)","|Complete|","16.0",""
"`LWG3724 <https://wg21.link/LWG3724>`__","``decay-copy`` should be constrained","2022-07 (Virtual)","|Complete|","14.0",""
"","","","","",""
"`LWG3028 <https://wg21.link/LWG3028>`__","Container requirements tables should distinguish ``const`` and non-``const`` variables","2022-11 (Kona)","","",""
@ -191,53 +191,53 @@
"`LWG3177 <https://wg21.link/LWG3177>`__","Limit permission to specialize variable templates to program-defined types","2022-11 (Kona)","|Nothing To Do|","",""
"`LWG3515 <https://wg21.link/LWG3515>`__","§[stacktrace.basic.nonmem]: ``operator<<`` should be less templatized","2022-11 (Kona)","","",""
"`LWG3545 <https://wg21.link/LWG3545>`__","``std::pointer_traits`` should be SFINAE-friendly","2022-11 (Kona)","|Complete|","18.0",""
"`LWG3569 <https://wg21.link/LWG3569>`__","``join_view`` fails to support ranges of ranges with non-default_initializable iterators","2022-11 (Kona)","","","|ranges|"
"`LWG3569 <https://wg21.link/LWG3569>`__","``join_view`` fails to support ranges of ranges with non-default_initializable iterators","2022-11 (Kona)","","",""
"`LWG3594 <https://wg21.link/LWG3594>`__","``inout_ptr`` — inconsistent ``release()`` in destructor","2022-11 (Kona)","|Complete|","19.0",""
"`LWG3597 <https://wg21.link/LWG3597>`__","Unsigned integer types don't model advanceable","2022-11 (Kona)","","","|ranges|"
"`LWG3597 <https://wg21.link/LWG3597>`__","Unsigned integer types don't model advanceable","2022-11 (Kona)","","",""
"`LWG3600 <https://wg21.link/LWG3600>`__","Making ``istream_iterator`` copy constructor trivial is an ABI break","2022-11 (Kona)","","",""
"`LWG3629 <https://wg21.link/LWG3629>`__","``make_error_code`` and ``make_error_condition`` are customization points","2022-11 (Kona)","|Complete|","16.0",""
"`LWG3636 <https://wg21.link/LWG3636>`__","``formatter<T>::format`` should be ``const``-qualified","2022-11 (Kona)","|Complete|","16.0","|format|"
"`LWG3646 <https://wg21.link/LWG3646>`__","``std::ranges::view_interface::size`` returns a signed type","2022-11 (Kona)","|Complete|","16.0","|ranges|"
"`LWG3636 <https://wg21.link/LWG3636>`__","``formatter<T>::format`` should be ``const``-qualified","2022-11 (Kona)","|Complete|","16.0",""
"`LWG3646 <https://wg21.link/LWG3646>`__","``std::ranges::view_interface::size`` returns a signed type","2022-11 (Kona)","|Complete|","16.0",""
"`LWG3677 <https://wg21.link/LWG3677>`__","Is a cv-qualified ``pair`` specially handled in uses-allocator construction?","2022-11 (Kona)","|Complete|","18.0",""
"`LWG3717 <https://wg21.link/LWG3717>`__","``common_view::end`` should improve ``random_access_range`` case","2022-11 (Kona)","","","|ranges|"
"`LWG3732 <https://wg21.link/LWG3732>`__","``prepend_range`` and ``append_range`` can't be amortized constant time","2022-11 (Kona)","|Nothing To Do|","","|ranges|"
"`LWG3736 <https://wg21.link/LWG3736>`__","``move_iterator`` missing ``disable_sized_sentinel_for`` specialization","2022-11 (Kona)","|Complete|","19.0","|ranges|"
"`LWG3737 <https://wg21.link/LWG3737>`__","``take_view::sentinel`` should provide ``operator-``","2022-11 (Kona)","","","|ranges|"
"`LWG3738 <https://wg21.link/LWG3738>`__","Missing preconditions for ``take_view`` constructor","2022-11 (Kona)","|Complete|","16.0","|ranges|"
"`LWG3743 <https://wg21.link/LWG3743>`__","``ranges::to``'s reserve may be ill-formed","2022-11 (Kona)","","","|ranges|"
"`LWG3717 <https://wg21.link/LWG3717>`__","``common_view::end`` should improve ``random_access_range`` case","2022-11 (Kona)","","",""
"`LWG3732 <https://wg21.link/LWG3732>`__","``prepend_range`` and ``append_range`` can't be amortized constant time","2022-11 (Kona)","|Nothing To Do|","",""
"`LWG3736 <https://wg21.link/LWG3736>`__","``move_iterator`` missing ``disable_sized_sentinel_for`` specialization","2022-11 (Kona)","|Complete|","19.0",""
"`LWG3737 <https://wg21.link/LWG3737>`__","``take_view::sentinel`` should provide ``operator-``","2022-11 (Kona)","","",""
"`LWG3738 <https://wg21.link/LWG3738>`__","Missing preconditions for ``take_view`` constructor","2022-11 (Kona)","|Complete|","16.0",""
"`LWG3743 <https://wg21.link/LWG3743>`__","``ranges::to``'s reserve may be ill-formed","2022-11 (Kona)","","",""
"`LWG3745 <https://wg21.link/LWG3745>`__","``std::atomic_wait`` and its friends lack ``noexcept``","2022-11 (Kona)","|Complete|","16.0",""
"`LWG3746 <https://wg21.link/LWG3746>`__","``optional``'s spaceship with ``U`` with a type derived from optional causes infinite constraint meta-recursion","2022-11 (Kona)","|Complete|","17.0","|spaceship|"
"`LWG3747 <https://wg21.link/LWG3747>`__","``ranges::uninitialized_copy_n``, ``ranges::uninitialized_move_n``, and ``ranges::destroy_n`` should use ``std::move``","2022-11 (Kona)","","","|ranges|"
"`LWG3750 <https://wg21.link/LWG3750>`__","Too many papers bump ``__cpp_lib_format``","2022-11 (Kona)","|Partial| [#note-LWG3750]_","","|format|"
"`LWG3751 <https://wg21.link/LWG3751>`__","Missing feature macro for ``flat_set``","2022-11 (Kona)","","","|flat_containers|"
"`LWG3746 <https://wg21.link/LWG3746>`__","``optional``'s spaceship with ``U`` with a type derived from optional causes infinite constraint meta-recursion","2022-11 (Kona)","|Complete|","17.0",""
"`LWG3747 <https://wg21.link/LWG3747>`__","``ranges::uninitialized_copy_n``, ``ranges::uninitialized_move_n``, and ``ranges::destroy_n`` should use ``std::move``","2022-11 (Kona)","","",""
"`LWG3750 <https://wg21.link/LWG3750>`__","Too many papers bump ``__cpp_lib_format``","2022-11 (Kona)","|Partial|","","Only ``__cpp_lib_format_ranges`` is fully implemented"
"`LWG3751 <https://wg21.link/LWG3751>`__","Missing feature macro for ``flat_set``","2022-11 (Kona)","","",""
"`LWG3753 <https://wg21.link/LWG3753>`__","Clarify entity vs. freestanding entity","2022-11 (Kona)","","",""
"`LWG3754 <https://wg21.link/LWG3754>`__","Class template expected synopsis contains declarations that do not match the detailed description","2022-11 (Kona)","|Nothing To Do|","",""
"`LWG3755 <https://wg21.link/LWG3755>`__","``tuple-for-each`` can call ``user-defined`` ``operator,``","2022-11 (Kona)","|Complete|","17.0",""
"`LWG3757 <https://wg21.link/LWG3757>`__","What's the effect of ``std::forward_like<void>(x)``?","2022-11 (Kona)","","",""
"`LWG3759 <https://wg21.link/LWG3759>`__","``ranges::rotate_copy`` should use ``std::move``","2022-11 (Kona)","|Complete|","15.0","|ranges|"
"`LWG3760 <https://wg21.link/LWG3760>`__","``cartesian_product_view::iterator``'s ``parent_`` is never valid","2022-11 (Kona)","","","|ranges|"
"`LWG3761 <https://wg21.link/LWG3761>`__","``cartesian_product_view::iterator::operator-`` should pass by reference","2022-11 (Kona)","","","|ranges|"
"`LWG3759 <https://wg21.link/LWG3759>`__","``ranges::rotate_copy`` should use ``std::move``","2022-11 (Kona)","|Complete|","15.0",""
"`LWG3760 <https://wg21.link/LWG3760>`__","``cartesian_product_view::iterator``'s ``parent_`` is never valid","2022-11 (Kona)","","",""
"`LWG3761 <https://wg21.link/LWG3761>`__","``cartesian_product_view::iterator::operator-`` should pass by reference","2022-11 (Kona)","","",""
"`LWG3762 <https://wg21.link/LWG3762>`__","``generator::iterator::operator==`` should pass by reference","2022-11 (Kona)","","",""
"`LWG3764 <https://wg21.link/LWG3764>`__","``reference_wrapper::operator()`` should propagate noexcept","2022-11 (Kona)","|Complete|","17.0",""
"`LWG3765 <https://wg21.link/LWG3765>`__","``const_sentinel`` should be constrained","2022-11 (Kona)","","","|ranges|"
"`LWG3766 <https://wg21.link/LWG3766>`__","``view_interface::cbegin`` is underconstrained","2022-11 (Kona)","","","|ranges|"
"`LWG3770 <https://wg21.link/LWG3770>`__","``const_sentinel_t`` is missing","2022-11 (Kona)","","","|ranges|"
"`LWG3773 <https://wg21.link/LWG3773>`__","``views::zip_transform`` still requires ``F`` to be ``copy_constructible`` when empty pack","2022-11 (Kona)","","","|ranges|"
"`LWG3774 <https://wg21.link/LWG3774>`__","``<flat_set>`` should include ``<compare>``","2022-11 (Kona)","","","|flat_containers|"
"`LWG3765 <https://wg21.link/LWG3765>`__","``const_sentinel`` should be constrained","2022-11 (Kona)","","",""
"`LWG3766 <https://wg21.link/LWG3766>`__","``view_interface::cbegin`` is underconstrained","2022-11 (Kona)","","",""
"`LWG3770 <https://wg21.link/LWG3770>`__","``const_sentinel_t`` is missing","2022-11 (Kona)","","",""
"`LWG3773 <https://wg21.link/LWG3773>`__","``views::zip_transform`` still requires ``F`` to be ``copy_constructible`` when empty pack","2022-11 (Kona)","","",""
"`LWG3774 <https://wg21.link/LWG3774>`__","``<flat_set>`` should include ``<compare>``","2022-11 (Kona)","","",""
"`LWG3775 <https://wg21.link/LWG3775>`__","Broken dependencies in the ``Cpp17Allocator`` requirements","2022-11 (Kona)","","",""
"`LWG3778 <https://wg21.link/LWG3778>`__","``vector<bool>`` missing exception specifications","2022-11 (Kona)","|Complete|","3.7",""
"`LWG3781 <https://wg21.link/LWG3781>`__","The exposition-only alias templates ``cont-key-type`` and ``cont-mapped-type`` should be removed","2022-11 (Kona)","|Nothing To Do|","",""
"`LWG3782 <https://wg21.link/LWG3782>`__","Should ``<math.h>`` declare ``::lerp``?","2022-11 (Kona)","|Complete|","17.0",""
"`LWG3784 <https://wg21.link/LWG3784>`__","std.compat should not provide ``::byte`` and its friends","2022-11 (Kona)","|Complete|","19.0",""
"`LWG3785 <https://wg21.link/LWG3785>`__","``ranges::to`` is over-constrained on the destination type being a range","2022-11 (Kona)","","","|ranges|"
"`LWG3785 <https://wg21.link/LWG3785>`__","``ranges::to`` is over-constrained on the destination type being a range","2022-11 (Kona)","","",""
"`LWG3788 <https://wg21.link/LWG3788>`__","``jthread::operator=(jthread&&)`` postconditions are unimplementable under self-assignment","2022-11 (Kona)","","",""
"`LWG3792 <https://wg21.link/LWG3792>`__","``__cpp_lib_constexpr_algorithms`` should also be defined in ``<utility>``","2022-11 (Kona)","|Complete|","16.0",""
"`LWG3795 <https://wg21.link/LWG3795>`__","Self-move-assignment of ``std::future`` and ``std::shared_future`` have unimplementable postconditions","2022-11 (Kona)","","",""
"`LWG3796 <https://wg21.link/LWG3796>`__","``movable-box`` as member should use ``default-initialization`` instead of ``copy-initialization``","2022-11 (Kona)","","","|ranges|"
"`LWG3798 <https://wg21.link/LWG3798>`__","Rvalue reference and ``iterator_category``","2022-11 (Kona)","|Partial| [#note-LWG3798]_","","|ranges|"
"`LWG3801 <https://wg21.link/LWG3801>`__","``cartesian_product_view::iterator::distance-from`` ignores the size of last underlying range","2022-11 (Kona)","","","|ranges|"
"`LWG3796 <https://wg21.link/LWG3796>`__","``movable-box`` as member should use ``default-initialization`` instead of ``copy-initialization``","2022-11 (Kona)","","",""
"`LWG3798 <https://wg21.link/LWG3798>`__","Rvalue reference and ``iterator_category``","2022-11 (Kona)","|Partial|","","``join_with_view``, ``zip_transform_view``, and ``adjacent_transform_view`` haven't been done yet since these types aren't implemented yet"
"`LWG3801 <https://wg21.link/LWG3801>`__","``cartesian_product_view::iterator::distance-from`` ignores the size of last underlying range","2022-11 (Kona)","","",""
"`LWG3814 <https://wg21.link/LWG3814>`__","Add freestanding items requested by NB comments","2022-11 (Kona)","","",""
"`LWG3816 <https://wg21.link/LWG3816>`__","``flat_map`` and ``flat_multimap`` should impose sequence container requirements","2022-11 (Kona)","","","|flat_containers|"
"`LWG3816 <https://wg21.link/LWG3816>`__","``flat_map`` and ``flat_multimap`` should impose sequence container requirements","2022-11 (Kona)","","",""
"`LWG3817 <https://wg21.link/LWG3817>`__","Missing preconditions on ``forward_list`` modifiers","2022-11 (Kona)","","",""
"`LWG3818 <https://wg21.link/LWG3818>`__","Exposition-only concepts are not described in library intro","2022-11 (Kona)","|Nothing To Do|","",""
"`LWG3822 <https://wg21.link/LWG3822>`__","Avoiding normalization in ``filesystem::weakly_canonical``","2022-11 (Kona)","","",""
@ -249,31 +249,31 @@
"`LWG2295 <https://wg21.link/LWG2295>`__","Locale name when the provided ``Facet`` is a ``nullptr``","2023-02 (Issaquah)","","",""
"`LWG3032 <https://wg21.link/LWG3032>`__","``ValueSwappable`` requirement missing for ``push_heap`` and ``make_heap``","2023-02 (Issaquah)","","",""
"`LWG3085 <https://wg21.link/LWG3085>`__","``char_traits::copy`` precondition too weak","2023-02 (Issaquah)","","",""
"`LWG3664 <https://wg21.link/LWG3664>`__","`LWG 3392 <https://wg21.link/LWG3392>`__ ``broke std::ranges::distance(a, a+3)``","2023-02 (Issaquah)","","","|ranges|"
"`LWG3720 <https://wg21.link/LWG3720>`__","Restrict the valid types of ``arg-id`` for width and precision in ``std-format-spec``","2023-02 (Issaquah)","|Complete|","17.0","|format|"
"`LWG3664 <https://wg21.link/LWG3664>`__","`LWG 3392 <https://wg21.link/LWG3392>`__ ``broke std::ranges::distance(a, a+3)``","2023-02 (Issaquah)","","",""
"`LWG3720 <https://wg21.link/LWG3720>`__","Restrict the valid types of ``arg-id`` for width and precision in ``std-format-spec``","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3756 <https://wg21.link/LWG3756>`__","Is the ``std::atomic_flag`` class signal-safe?","2023-02 (Issaquah)","","",""
"`LWG3769 <https://wg21.link/LWG3769>`__","``basic_const_iterator::operator==`` causes infinite constraint recursion","2023-02 (Issaquah)","","","|spaceship|"
"`LWG3807 <https://wg21.link/LWG3807>`__","The feature test macro for ``ranges::find_last`` should be renamed","2023-02 (Issaquah)","","","|ranges|"
"`LWG3811 <https://wg21.link/LWG3811>`__","``views::as_const`` on ``ref_view<T>`` should return ``ref_view<const T>``","2023-02 (Issaquah)","","","|ranges|"
"`LWG3820 <https://wg21.link/LWG3820>`__","``cartesian_product_view::iterator::prev`` is not quite right","2023-02 (Issaquah)","","","|ranges|"
"`LWG3825 <https://wg21.link/LWG3825>`__","Missing compile-time argument ``id`` check in ``basic_format_parse_context::next_arg_id``","2023-02 (Issaquah)","|Complete|","17.0","|format|"
"`LWG3769 <https://wg21.link/LWG3769>`__","``basic_const_iterator::operator==`` causes infinite constraint recursion","2023-02 (Issaquah)","","",""
"`LWG3807 <https://wg21.link/LWG3807>`__","The feature test macro for ``ranges::find_last`` should be renamed","2023-02 (Issaquah)","","",""
"`LWG3811 <https://wg21.link/LWG3811>`__","``views::as_const`` on ``ref_view<T>`` should return ``ref_view<const T>``","2023-02 (Issaquah)","","",""
"`LWG3820 <https://wg21.link/LWG3820>`__","``cartesian_product_view::iterator::prev`` is not quite right","2023-02 (Issaquah)","","",""
"`LWG3825 <https://wg21.link/LWG3825>`__","Missing compile-time argument ``id`` check in ``basic_format_parse_context::next_arg_id``","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3204 <https://wg21.link/LWG3204>`__","``sub_match::swap`` only swaps the base class","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3733 <https://wg21.link/LWG3733>`__","``ranges::to`` misuses ``cpp17-input-iterator``","2023-02 (Issaquah)","|Complete|","17.0","|ranges|"
"`LWG3742 <https://wg21.link/LWG3742>`__","``deque::prepend_range`` needs to permute","2023-02 (Issaquah)","","","|ranges|"
"`LWG3733 <https://wg21.link/LWG3733>`__","``ranges::to`` misuses ``cpp17-input-iterator``","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3742 <https://wg21.link/LWG3742>`__","``deque::prepend_range`` needs to permute","2023-02 (Issaquah)","","",""
"`LWG3790 <https://wg21.link/LWG3790>`__","`P1467 <https://wg21.link/P1467>`__ accidentally changed ``nexttoward``'s signature","2023-02 (Issaquah)","","",""
"`LWG3819 <https://wg21.link/LWG3819>`__","``reference_meows_from_temporary`` should not use ``is_meowible``","2023-02 (Issaquah)","","",""
"`LWG3821 <https://wg21.link/LWG3821>`__","``uses_allocator_construction_args`` should have overload for ``pair-like``","2023-02 (Issaquah)","|Complete|","18.0",""
"`LWG3834 <https://wg21.link/LWG3834>`__","Missing ``constexpr`` for ``std::intmax_t`` math functions in ``<cinttypes>``","2023-02 (Issaquah)","","",""
"`LWG3839 <https://wg21.link/LWG3839>`__","``range_formatter``'s ``set_separator``, ``set_brackets``, and ``underlying`` functions should be ``noexcept``","2023-02 (Issaquah)","|Complete|","17.0","|format|"
"`LWG3839 <https://wg21.link/LWG3839>`__","``range_formatter``'s ``set_separator``, ``set_brackets``, and ``underlying`` functions should be ``noexcept``","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3841 <https://wg21.link/LWG3841>`__","``<version>`` should not be ""all freestanding""","2023-02 (Issaquah)","","",""
"`LWG3842 <https://wg21.link/LWG3842>`__","Unclear wording for ``precision`` in ``chrono-format-spec``","2023-02 (Issaquah)","|Complete|","16.0","|format|"
"`LWG3848 <https://wg21.link/LWG3848>`__","``adjacent_view``, ``adjacent_transform_view`` and ``slide_view`` missing ``base`` accessor","2023-02 (Issaquah)","","","|ranges|"
"`LWG3849 <https://wg21.link/LWG3849>`__","``cartesian_product_view::iterator``'s default constructor is overconstrained","2023-02 (Issaquah)","","","|ranges|"
"`LWG3850 <https://wg21.link/LWG3850>`__","``views::as_const`` on ``empty_view<T>`` should return ``empty_view<const T>``","2023-02 (Issaquah)","","","|ranges|"
"`LWG3851 <https://wg21.link/LWG3851>`__","``chunk_view::inner-iterator`` missing custom ``iter_move`` and ``iter_swap``","2023-02 (Issaquah)","","","|ranges|"
"`LWG3842 <https://wg21.link/LWG3842>`__","Unclear wording for ``precision`` in ``chrono-format-spec``","2023-02 (Issaquah)","|Complete|","16.0",""
"`LWG3848 <https://wg21.link/LWG3848>`__","``adjacent_view``, ``adjacent_transform_view`` and ``slide_view`` missing ``base`` accessor","2023-02 (Issaquah)","","",""
"`LWG3849 <https://wg21.link/LWG3849>`__","``cartesian_product_view::iterator``'s default constructor is overconstrained","2023-02 (Issaquah)","","",""
"`LWG3850 <https://wg21.link/LWG3850>`__","``views::as_const`` on ``empty_view<T>`` should return ``empty_view<const T>``","2023-02 (Issaquah)","","",""
"`LWG3851 <https://wg21.link/LWG3851>`__","``chunk_view::inner-iterator`` missing custom ``iter_move`` and ``iter_swap``","2023-02 (Issaquah)","","",""
"`LWG3853 <https://wg21.link/LWG3853>`__","``basic_const_iterator<volatile int*>::operator->`` is ill-formed","2023-02 (Issaquah)","","",""
"`LWG3857 <https://wg21.link/LWG3857>`__","``basic_string_view`` should allow explicit conversion when only traits vary","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3860 <https://wg21.link/LWG3860>`__","``range_common_reference_t`` is missing","2023-02 (Issaquah)","|Complete|","17.0","|ranges|"
"`LWG3860 <https://wg21.link/LWG3860>`__","``range_common_reference_t`` is missing","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3866 <https://wg21.link/LWG3866>`__","Bad Mandates for ``expected::transform_error`` overloads","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3867 <https://wg21.link/LWG3867>`__","Should ``std::basic_osyncstream``'s move assignment operator be ``noexcept``?","2023-02 (Issaquah)","|Complete|","18.0",""
"`LWG3441 <https://wg21.link/LWG3441>`__","Misleading note about calls to customization points","2023-02 (Issaquah)","","",""
@ -281,28 +281,28 @@
"`LWG3631 <https://wg21.link/LWG3631>`__","``basic_format_arg(T&&)`` should use ``remove_cvref_t<T>`` throughout","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3645 <https://wg21.link/LWG3645>`__","``resize_and_overwrite`` is overspecified to call its callback with lvalues","2023-02 (Issaquah)","|Complete|","14.0",""
"`LWG3655 <https://wg21.link/LWG3655>`__","The ``INVOKE`` operation and union types","2023-02 (Issaquah)","|Complete|","18.0",""
"`LWG3723 <https://wg21.link/LWG3723>`__","``priority_queue::push_range`` needs to ``append_range``","2023-02 (Issaquah)","","","|ranges|"
"`LWG3723 <https://wg21.link/LWG3723>`__","``priority_queue::push_range`` needs to ``append_range``","2023-02 (Issaquah)","","",""
"`LWG3734 <https://wg21.link/LWG3734>`__","Inconsistency in ``inout_ptr`` and ``out_ptr`` for empty case","2023-02 (Issaquah)","|Complete|","19.0",""
"`LWG3772 <https://wg21.link/LWG3772>`__","``repeat_view``'s ``piecewise`` constructor is missing Postconditions","2023-02 (Issaquah)","|Complete|","17.0","|ranges|"
"`LWG3772 <https://wg21.link/LWG3772>`__","``repeat_view``'s ``piecewise`` constructor is missing Postconditions","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3786 <https://wg21.link/LWG3786>`__","Flat maps' deduction guide needs to default ``Allocator`` to be useful","2023-02 (Issaquah)","","",""
"`LWG3803 <https://wg21.link/LWG3803>`__","``flat_foo`` constructors taking ``KeyContainer`` lack ``KeyCompare`` parameter","2023-02 (Issaquah)","","",""
"`LWG3810 <https://wg21.link/LWG3810>`__","CTAD for ``std::basic_format_args``","2023-02 (Issaquah)","|Complete|","17.0","|format|"
"`LWG3810 <https://wg21.link/LWG3810>`__","CTAD for ``std::basic_format_args``","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3827 <https://wg21.link/LWG3827>`__","Deprecate ``<stdalign.h>`` and ``<stdbool.h>`` macros","2023-02 (Issaquah)","","",""
"`LWG3828 <https://wg21.link/LWG3828>`__","Sync ``intmax_t`` and ``uintmax_t`` with C2x","2023-02 (Issaquah)","|Nothing To Do|","",""
"`LWG3833 <https://wg21.link/LWG3833>`__","Remove specialization ``template<size_t N> struct formatter<const charT[N], charT>``","2023-02 (Issaquah)","|Complete|","17.0","|format|"
"`LWG3833 <https://wg21.link/LWG3833>`__","Remove specialization ``template<size_t N> struct formatter<const charT[N], charT>``","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3836 <https://wg21.link/LWG3836>`__","``std::expected<bool, E1>`` conversion constructor ``expected(const expected<U, G>&)`` should take precedence over ``expected(U&&)`` with operator ``bool``","2023-02 (Issaquah)","|Complete|","18.0",""
"`LWG3843 <https://wg21.link/LWG3843>`__","``std::expected<T,E>::value() &`` assumes ``E`` is copy constructible","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3847 <https://wg21.link/LWG3847>`__","``ranges::to`` can still return views","2023-02 (Issaquah)","|Complete|","17.0","|ranges|"
"`LWG3847 <https://wg21.link/LWG3847>`__","``ranges::to`` can still return views","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3862 <https://wg21.link/LWG3862>`__","``basic_const_iterator``'s ``common_type`` specialization is underconstrained","2023-02 (Issaquah)","","",""
"`LWG3865 <https://wg21.link/LWG3865>`__","Sorting a range of ``pairs``","2023-02 (Issaquah)","|Complete|","17.0","|ranges|"
"`LWG3865 <https://wg21.link/LWG3865>`__","Sorting a range of ``pairs``","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3869 <https://wg21.link/LWG3869>`__","Deprecate ``std::errc`` constants related to UNIX STREAMS","2023-02 (Issaquah)","|Complete|","19.0",""
"`LWG3870 <https://wg21.link/LWG3870>`__","Remove ``voidify``","2023-02 (Issaquah)","","",""
"`LWG3871 <https://wg21.link/LWG3871>`__","Adjust note about ``terminate``","2023-02 (Issaquah)","","",""
"`LWG3872 <https://wg21.link/LWG3872>`__","``basic_const_iterator`` should have custom ``iter_move``","2023-02 (Issaquah)","","",""
"`LWG3875 <https://wg21.link/LWG3875>`__","``std::ranges::repeat_view<T, IntegerClass>::iterator`` may be ill-formed","2023-02 (Issaquah)","|Complete|","17.0","|ranges|"
"`LWG3875 <https://wg21.link/LWG3875>`__","``std::ranges::repeat_view<T, IntegerClass>::iterator`` may be ill-formed","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3876 <https://wg21.link/LWG3876>`__","Default constructor of ``std::layout_XX::mapping`` misses precondition","2023-02 (Issaquah)","","",""
"`LWG3877 <https://wg21.link/LWG3877>`__","Incorrect constraints on ``const``-qualified monadic overloads for ``std::expected``","2023-02 (Issaquah)","|Complete|","17.0",""
"`LWG3878 <https://wg21.link/LWG3878>`__","import ``std;`` should guarantee initialization of standard iostreams objects","2023-02 (Issaquah)","","",""
"`LWG3879 <https://wg21.link/LWG3879>`__","``erase_if`` for ``flat_{,multi}set`` is incorrectly specified","2023-02 (Issaquah)","","",""
"`LWG3880 <https://wg21.link/LWG3880>`__","Clarify ``operator+=`` complexity for ``{chunk,stride}_view::iterator``","2023-02 (Issaquah)","","","|ranges|"
"`LWG3881 <https://wg21.link/LWG3881>`__","Incorrect formatting of container adapters backed by ``std::string``","2023-02 (Issaquah)","|Complete|","17.0","|format|"
"`LWG3880 <https://wg21.link/LWG3880>`__","Clarify ``operator+=`` complexity for ``{chunk,stride}_view::iterator``","2023-02 (Issaquah)","","",""
"`LWG3881 <https://wg21.link/LWG3881>`__","Incorrect formatting of container adapters backed by ``std::string``","2023-02 (Issaquah)","|Complete|","17.0",""

1 Issue # Issue Name Meeting Status First released version Labels Notes
2 `LWG2839 <https://wg21.link/LWG2839>`__ Self-move-assignment of library types, again 2020-11 (Virtual) |Nothing To Do|
3 `LWG3117 <https://wg21.link/LWG3117>`__ Missing ``packaged_task`` deduction guides 2020-11 (Virtual) |Complete| 16.0
4 `LWG3143 <https://wg21.link/LWG3143>`__ ``monotonic_buffer_resource`` growth policy is unclear 2020-11 (Virtual)
5 `LWG3195 <https://wg21.link/LWG3195>`__ What is the stored pointer value of an empty ``weak_ptr``? 2020-11 (Virtual) |Nothing To Do|
6 `LWG3211 <https://wg21.link/LWG3211>`__ ``std::tuple<>`` should be trivially constructible 2020-11 (Virtual) |Complete| 9.0
7 `LWG3236 <https://wg21.link/LWG3236>`__ Random access iterator requirements lack limiting relational operators domain to comparing those from the same range 2020-11 (Virtual) |Nothing To Do|
8 `LWG3265 <https://wg21.link/LWG3265>`__ ``move_iterator``'s conversions are more broken after P1207 2020-11 (Virtual) |Nothing To Do| [#note-LWG3265]_ |Nothing To Do| Resolved by `LWG3435 <https://wg21.link/LWG3435>`__
9 `LWG3435 <https://wg21.link/LWG3435>`__ ``three_way_comparable_with<reverse_iterator<int*>, reverse_iterator<const int*>>`` 2020-11 (Virtual) |Complete| 13.0
10 `LWG3432 <https://wg21.link/LWG3432>`__ Missing requirement for ``comparison_category`` 2020-11 (Virtual) |Complete| 16.0 |spaceship|
11 `LWG3447 <https://wg21.link/LWG3447>`__ Deduction guides for ``take_view`` and ``drop_view`` have different constraints 2020-11 (Virtual) |Complete| 14.0 |ranges|
12 `LWG3450 <https://wg21.link/LWG3450>`__ The const overloads of ``take_while_view::begin/end`` are underconstrained 2020-11 (Virtual) |Complete| 16.0 |ranges|
13 `LWG3464 <https://wg21.link/LWG3464>`__ ``istream::gcount()`` can overflow 2020-11 (Virtual) |Complete| 18.0
14 `LWG2731 <https://wg21.link/LWG2731>`__ Existence of ``lock_guard<MutexTypes...>::mutex_type`` typedef unclear 2020-11 (Virtual) |Complete| 5.0
15 `LWG2743 <https://wg21.link/LWG2743>`__ P0083R3 ``node_handle`` private members missing "exposition only" comment 2020-11 (Virtual) |Nothing To Do|
16 `LWG2820 <https://wg21.link/LWG2820>`__ Clarify ``<cstdint>`` macros 2020-11 (Virtual) |Nothing To Do|
17 `LWG3120 <https://wg21.link/LWG3120>`__ Unclear behavior of ``monotonic_buffer_resource::release()`` 2020-11 (Virtual)
18 `LWG3170 <https://wg21.link/LWG3170>`__ ``is_always_equal`` added to ``std::allocator`` makes the standard library treat derived types as always equal 2020-11 (Virtual) |Complete| 18.0
19 `LWG3036 <https://wg21.link/LWG3036>`__ ``polymorphic_allocator::destroy`` is extraneous 2020-11 (Virtual) |Nothing To Do| [#note-LWG3036]_ |Nothing To Do| Reverted by P2875R4
20 `LWG3171 <https://wg21.link/LWG3171>`__ LWG2989 breaks ``directory_entry`` stream insertion 2020-11 (Virtual) |Complete| 14.0
21 `LWG3306 <https://wg21.link/LWG3306>`__ ``ranges::advance`` violates its preconditions 2020-11 (Virtual) |Complete| 14.0 |ranges|
22 `LWG3403 <https://wg21.link/LWG3403>`__ Domain of ``ranges::ssize(E)`` doesn't ``match ranges::size(E)`` 2020-11 (Virtual) |ranges|
23 `LWG3404 <https://wg21.link/LWG3404>`__ Finish removing subrange's conversions from pair-like 2020-11 (Virtual) |Complete| 13.0 |ranges|
24 `LWG3405 <https://wg21.link/LWG3405>`__ ``common_view``'s converting constructor is bad, too 2020-11 (Virtual) |Complete| 14.0 |ranges|
25 `LWG3406 <https://wg21.link/LWG3406>`__ ``elements_view::begin()`` and ``elements_view::end()`` have incompatible constraints 2020-11 (Virtual) |Complete| 16.0 |ranges|
26 `LWG3419 <https://wg21.link/LWG3419>`__ [algorithms.requirements]/15 doesn't reserve as many rights as it intends to 2020-11 (Virtual) |Nothing To Do|
27 `LWG3420 <https://wg21.link/LWG3420>`__ cpp17-iterator should check that the type looks like an iterator first 2020-11 (Virtual) |Complete| 14.0 |ranges|
28 `LWG3421 <https://wg21.link/LWG3421>`__ Imperfect ADL emulation for boolean-testable 2020-11 (Virtual) |Nothing To Do| |ranges|
29 `LWG3425 <https://wg21.link/LWG3425>`__ ``condition_variable_any`` fails to constrain its Lock parameters 2020-11 (Virtual) |Nothing To Do|
30 `LWG3426 <https://wg21.link/LWG3426>`__ ``operator<=>(const unique_ptr<T, D>&, nullptr_t)`` can't get no satisfaction 2020-11 (Virtual) |Complete| 16.0 |spaceship|
31 `LWG3427 <https://wg21.link/LWG3427>`__ ``operator<=>(const shared_ptr<T>&, nullptr_t)`` definition ill-formed 2020-11 (Virtual) |Complete| 16.0 |spaceship|
32 `LWG3428 <https://wg21.link/LWG3428>`__ ``single_view``'s in place constructor should be explicit 2020-11 (Virtual) |Complete| 14.0 |ranges|
33 `LWG3434 <https://wg21.link/LWG3434>`__ ``ios_base`` never reclaims memory for iarray and parray 2020-11 (Virtual) |Nothing To Do|
34 `LWG3437 <https://wg21.link/LWG3437>`__ ``__cpp_lib_polymorphic_allocator`` is in the wrong header 2020-11 (Virtual) |Complete| 14.0
35 `LWG3446 <https://wg21.link/LWG3446>`__ ``indirectly_readable_traits`` ambiguity for types with both ``value_type`` and ``element_type`` 2020-11 (Virtual) |Complete| 14.0 |ranges|
36 `LWG3448 <https://wg21.link/LWG3448>`__ ``transform_view``'s ``sentinel<false>`` not comparable with ``iterator<true>`` 2020-11 (Virtual) |ranges|
37 `LWG3449 <https://wg21.link/LWG3449>`__ ``take_view`` and ``take_while_view``'s ``sentinel<false>`` not comparable with their ``const iterator`` 2020-11 (Virtual) |Complete| 16.0 |ranges|
38 `LWG3453 <https://wg21.link/LWG3453>`__ Generic code cannot call ``ranges::advance(i, s)`` 2020-11 (Virtual) |Nothing To Do| |ranges|
39 `LWG3455 <https://wg21.link/LWG3455>`__ Incorrect Postconditions on ``unique_ptr`` move assignment 2020-11 (Virtual) |Nothing To Do|
40 `LWG3460 <https://wg21.link/LWG3460>`__ Unimplementable ``noop_coroutine_handle`` guarantees 2020-11 (Virtual) |Complete| 14.0
41 `LWG3461 <https://wg21.link/LWG3461>`__ ``convertible_to``'s description mishandles cv-qualified ``void`` 2020-11 (Virtual) |Nothing To Do|
42 `LWG3465 <https://wg21.link/LWG3465>`__ ``compare_partial_order_fallback`` requires ``F < E`` 2020-11 (Virtual) |Complete| 14.0 |spaceship|
43 `LWG3466 <https://wg21.link/LWG3466>`__ Specify the requirements for ``promise``/``future``/``shared_future`` consistently 2020-11 (Virtual) |Nothing To Do|
44 `LWG3467 <https://wg21.link/LWG3467>`__ ``bool`` can't be an integer-like type 2020-11 (Virtual) |Complete| 14.0 |ranges|
45 `LWG3472 <https://wg21.link/LWG3472>`__ ``counted_iterator`` is missing preconditions 2020-11 (Virtual) |Complete| 14.0 |ranges|
46 `LWG3473 <https://wg21.link/LWG3473>`__ Normative encouragement in non-normative note 2020-11 (Virtual) |Complete| 15.0 |format|
47 `LWG3474 <https://wg21.link/LWG3474>`__ Nesting ``join_views`` is broken because of CTAD 2020-11 (Virtual) |Complete| 15.0 |ranges|
48 `LWG3476 <https://wg21.link/LWG3476>`__ ``thread`` and ``jthread`` constructors require that the parameters be move-constructible but never move construct the parameters 2020-11 (Virtual)
49 `LWG3477 <https://wg21.link/LWG3477>`__ Simplify constraints for ``semiregular-box`` 2020-11 (Virtual) |Complete| 13.0 |ranges|
50 `LWG3482 <https://wg21.link/LWG3482>`__ ``drop_view``'s const begin should additionally require ``sized_range`` 2020-11 (Virtual) |Complete| 14.0 |ranges|
51 `LWG3483 <https://wg21.link/LWG3483>`__ ``transform_view::iterator``'s difference is overconstrained 2020-11 (Virtual) |Complete| 14.0 |ranges|
52
53 `LWG3391 <https://wg21.link/LWG3391>`__ Problems with ``counted_iterator``/``move_iterator::base() const &`` 2021-02 (Virtual) |ranges|
54 `LWG3433 <https://wg21.link/LWG3433>`__ ``subrange::advance(n)`` has UB when ``n < 0`` 2021-02 (Virtual) |Complete| 14.0 |ranges|
55 `LWG3490 <https://wg21.link/LWG3490>`__ ``ranges::drop_while_view::begin()`` is missing a precondition 2021-02 (Virtual) |Nothing To Do| |ranges|
56 `LWG3492 <https://wg21.link/LWG3492>`__ Minimal improvements to ``elements_view::iterator`` 2021-02 (Virtual) |Complete| 16.0 |ranges|
57 `LWG3494 <https://wg21.link/LWG3494>`__ Allow ranges to be conditionally borrowed 2021-02 (Virtual) |Nothing To Do| [#note-LWG3494]_ |Nothing To Do| |ranges| Superseded by `P2017R1 <https://wg21.link/P2017R1>`__
58 `LWG3495 <https://wg21.link/LWG3495>`__ ``constexpr launder`` makes pointers to inactive members of unions usable 2021-02 (Virtual) |Nothing To Do|
59 `LWG3500 <https://wg21.link/LWG3500>`__ ``join_view::iterator::operator->()`` is bogus 2021-02 (Virtual) |Complete| 14.0 |ranges|
60 `LWG3502 <https://wg21.link/LWG3502>`__ ``elements_view`` should not be allowed to return dangling reference 2021-02 (Virtual) |Complete| 16.0 |ranges|
61 `LWG3505 <https://wg21.link/LWG3505>`__ ``split_view::outer-iterator::operator++`` misspecified 2021-02 (Virtual) |ranges|
62
63 `LWG2774 <https://wg21.link/LWG2774>`__ ``std::function`` construction vs assignment 2021-06 (Virtual)
64 `LWG2818 <https://wg21.link/LWG2818>`__ ``::std::`` everywhere rule needs tweaking 2021-06 (Virtual) |Nothing To Do|
65 `LWG2997 <https://wg21.link/LWG2997>`__ LWG 491 and the specification of ``{forward_,}list::unique`` 2021-06 (Virtual)
66 `LWG3410 <https://wg21.link/LWG3410>`__ ``lexicographical_compare_three_way`` is overspecified 2021-06 (Virtual) |Complete| 17.0 |spaceship|
67 `LWG3430 <https://wg21.link/LWG3430>`__ ``std::fstream`` & co. should be constructible from string_view 2021-06 (Virtual) |Complete| 19.0
68 `LWG3462 <https://wg21.link/LWG3462>`__ §[formatter.requirements]: Formatter requirements forbid use of ``fc.arg()`` 2021-06 (Virtual) |Nothing To Do| |format|
69 `LWG3481 <https://wg21.link/LWG3481>`__ ``viewable_range`` mishandles lvalue move-only views 2021-06 (Virtual) |Nothing To Do| [#note-LWG3481]_ |Nothing To Do| |ranges| Superseded by `P2415R2 <https://wg21.link/P2415R2>`__
70 `LWG3506 <https://wg21.link/LWG3506>`__ Missing allocator-extended constructors for ``priority_queue`` 2021-06 (Virtual) |Complete| 14.0
71 `LWG3517 <https://wg21.link/LWG3517>`__ ``join_view::iterator``'s ``iter_swap`` is underconstrained 2021-06 (Virtual) |Complete| 14.0 |ranges|
72 `LWG3518 <https://wg21.link/LWG3518>`__ Exception requirements on char trait operations unclear 2021-06 (Virtual) |Nothing To Do|
73 `LWG3519 <https://wg21.link/LWG3519>`__ Incomplete synopses for ``<random>`` classes 2021-06 (Virtual)
74 `LWG3520 <https://wg21.link/LWG3520>`__ ``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator`` 2021-06 (Virtual) |Complete| 14.0 |ranges|
75 `LWG3521 <https://wg21.link/LWG3521>`__ Overly strict requirements on ``qsort`` and ``bsearch`` 2021-06 (Virtual) |Nothing To Do|
76 `LWG3522 <https://wg21.link/LWG3522>`__ Missing requirement on ``InputIterator`` template parameter for ``priority_queue`` constructors 2021-06 (Virtual) |Complete| 14.0
77 `LWG3523 <https://wg21.link/LWG3523>`__ ``iota_view::sentinel`` is not always ``iota_view``'s sentinel 2021-06 (Virtual) |Complete| 17.0 |ranges|
78 `LWG3526 <https://wg21.link/LWG3526>`__ Return types of ``uses_allocator_construction_args`` unspecified 2021-06 (Virtual)
79 `LWG3527 <https://wg21.link/LWG3527>`__ ``uses_allocator_construction_args`` handles rvalue pairs of rvalue references incorrectly 2021-06 (Virtual)
80 `LWG3528 <https://wg21.link/LWG3528>`__ ``make_from_tuple`` can perform (the equivalent of) a C-style cast 2021-06 (Virtual) |Complete| 19.0
81 `LWG3529 <https://wg21.link/LWG3529>`__ ``priority_queue(first, last)`` should construct ``c`` with ``(first, last)`` 2021-06 (Virtual) |Complete| 14.0
82 `LWG3530 <https://wg21.link/LWG3530>`__ ``BUILTIN-PTR-MEOW`` should not opt the type out of syntactic checks 2021-06 (Virtual)
83 `LWG3532 <https://wg21.link/LWG3532>`__ ``split_view<V, P>::inner-iterator<true>::operator++(int)`` should depend on ``Base`` 2021-06 (Virtual) |ranges|
84 `LWG3533 <https://wg21.link/LWG3533>`__ Make ``base() const &`` consistent across iterator wrappers that supports ``input_iterators`` 2021-06 (Virtual) |Complete| 14.0 |ranges|
85 `LWG3536 <https://wg21.link/LWG3536>`__ Should ``chrono::from_stream()`` assign zero to duration for failure? 2021-06 (Virtual) |chrono|
86 `LWG3539 <https://wg21.link/LWG3539>`__ ``format_to`` must not copy models of ``output_iterator<const charT&>`` 2021-06 (Virtual) |Complete| 14.0 |format|
87 `LWG3540 <https://wg21.link/LWG3540>`__ §[format.arg] There should be no const in ``basic_format_arg(const T* p)`` 2021-06 (Virtual) |Complete| 14.0 |format|
88 `LWG3541 <https://wg21.link/LWG3541>`__ ``indirectly_readable_traits`` should be SFINAE-friendly for all types 2021-06 (Virtual) |Complete| 14.0 |ranges|
89 `LWG3542 <https://wg21.link/LWG3542>`__ ``basic_format_arg`` mishandles ``basic_string_view`` with custom traits 2021-06 (Virtual) |Complete| 14.0 |format|
90 `LWG3543 <https://wg21.link/LWG3543>`__ Definition of when ``counted_iterators`` refer to the same sequence isn't quite right 2021-06 (Virtual) |Nothing To Do| |ranges|
91 `LWG3544 <https://wg21.link/LWG3544>`__ ``format-arg-store::args`` is unintentionally not exposition-only 2021-06 (Virtual) |Complete| 14.0 |format|
92 `LWG3546 <https://wg21.link/LWG3546>`__ ``common_iterator``'s postfix-proxy is not quite right 2021-06 (Virtual) |ranges|
93 `LWG3548 <https://wg21.link/LWG3548>`__ ``shared_ptr`` construction from ``unique_ptr`` should move (not copy) the deleter 2021-06 (Virtual) |Complete| 15.0
94 `LWG3549 <https://wg21.link/LWG3549>`__ ``view_interface`` is overspecified to derive from ``view_base`` 2021-06 (Virtual) |Complete| 14.0 |ranges|
95 `LWG3551 <https://wg21.link/LWG3551>`__ ``borrowed_{iterator,subrange}_t`` are overspecified 2021-06 (Virtual) |Nothing To Do| |ranges|
96 `LWG3552 <https://wg21.link/LWG3552>`__ Parallel specialized memory algorithms should require forward iterators 2021-06 (Virtual)
97 `LWG3553 <https://wg21.link/LWG3553>`__ Useless constraint in ``split_view::outer-iterator::value_type::begin()`` 2021-06 (Virtual) |ranges|
98 `LWG3555 <https://wg21.link/LWG3555>`__ ``{transform,elements}_view::iterator::iterator_concept`` should consider const-qualification of the underlying range 2021-06 (Virtual) |ranges|
99
100 `LWG2191 <https://wg21.link/LWG2191>`__ Incorrect specification of ``match_results(match_results&&)`` 2021-10 (Virtual) |Nothing To Do|
101 `LWG2381 <https://wg21.link/LWG2381>`__ Inconsistency in parsing floating point numbers 2021-10 (Virtual) |Complete| 19.0
102 `LWG2762 <https://wg21.link/LWG2762>`__ ``unique_ptr operator*()`` should be ``noexcept`` 2021-10 (Virtual) |Complete| 19.0
103 `LWG3121 <https://wg21.link/LWG3121>`__ ``tuple`` constructor constraints for ``UTypes&&...`` overloads 2021-10 (Virtual)
104 `LWG3123 <https://wg21.link/LWG3123>`__ ``duration`` constructor from representation shouldn't be effectively non-throwing 2021-10 (Virtual) |chrono|
105 `LWG3146 <https://wg21.link/LWG3146>`__ Excessive unwrapping in ``std::ref/cref`` 2021-10 (Virtual) |Complete| 14.0
106 `LWG3152 <https://wg21.link/LWG3152>`__ ``common_type`` and ``common_reference`` have flaws in common 2021-10 (Virtual)
107 `LWG3293 <https://wg21.link/LWG3293>`__ ``move_iterator operator+()`` has incorrect constraints 2021-10 (Virtual) |Complete| 15.0
108 `LWG3361 <https://wg21.link/LWG3361>`__ ``safe_range<SomeRange&>`` case 2021-10 (Virtual) |Nothing To Do| |ranges|
109 `LWG3392 <https://wg21.link/LWG3392>`__ ``ranges::distance()`` cannot be used on a move-only iterator with a sized sentinel 2021-10 (Virtual) |Complete| 14.0 |ranges|
110 `LWG3407 <https://wg21.link/LWG3407>`__ Some problems with the wording changes of P1739R4 2021-10 (Virtual) |Complete| 15.0 |ranges|
111 `LWG3422 <https://wg21.link/LWG3422>`__ Issues of ``seed_seq``'s constructors 2021-10 (Virtual) |Complete| 14.0
112 `LWG3470 <https://wg21.link/LWG3470>`__ ``convertible-to-non-slicing`` seems to reject valid case 2021-10 (Virtual) |Complete| 14.0 |ranges|
113 `LWG3480 <https://wg21.link/LWG3480>`__ ``directory_iterator`` and ``recursive_directory_iterator`` are not C++20 ranges 2021-10 (Virtual) |Complete| 14.0 |ranges|
114 `LWG3498 <https://wg21.link/LWG3498>`__ Inconsistent ``noexcept``-specifiers for ``basic_syncbuf`` 2021-10 (Virtual)
115 `LWG3535 <https://wg21.link/LWG3535>`__ ``join_view::iterator::iterator_category`` and ``::iterator_concept`` lie 2021-10 (Virtual) |Complete| 15.0 |ranges|
116 `LWG3554 <https://wg21.link/LWG3554>`__ ``chrono::parse`` needs ``const charT*`` and ``basic_string_view<charT>`` overloads 2021-10 (Virtual) |chrono|
117 `LWG3557 <https://wg21.link/LWG3557>`__ The ``static_cast`` expression in ``convertible_to`` has the wrong operand 2021-10 (Virtual) |Complete| 14.0
118 `LWG3559 <https://wg21.link/LWG3559>`__ Semantic requirements of ``sized_range`` is circular 2021-10 (Virtual) |Nothing To Do| |ranges|
119 `LWG3560 <https://wg21.link/LWG3560>`__ ``ranges::equal`` and ``ranges::is_permutation`` should short-circuit for ``sized_ranges`` 2021-10 (Virtual) |ranges|
120 `LWG3561 <https://wg21.link/LWG3561>`__ Issue with internal counter in ``discard_block_engine`` 2021-10 (Virtual)
121 `LWG3563 <https://wg21.link/LWG3563>`__ ``keys_view`` example is broken 2021-10 (Virtual) |ranges|
122 `LWG3566 <https://wg21.link/LWG3566>`__ Constraint recursion for ``operator<=>(optional<T>, U)`` 2021-10 (Virtual) |Complete| 17.0 |spaceship|
123 `LWG3567 <https://wg21.link/LWG3567>`__ Formatting move-only iterators take two 2021-10 (Virtual) |Complete| 16.0 |format| |ranges|
124 `LWG3568 <https://wg21.link/LWG3568>`__ ``basic_istream_view`` needs to initialize ``value_`` 2021-10 (Virtual) |Complete| 16.0 |ranges|
125 `LWG3570 <https://wg21.link/LWG3570>`__ ``basic_osyncstream::emit`` should be an unformatted output function 2021-10 (Virtual) |Complete| 18.0
126 `LWG3571 <https://wg21.link/LWG3571>`__ ``flush_emit`` should set ``badbit`` if the ``emit`` call fails 2021-10 (Virtual)
127 `LWG3572 <https://wg21.link/LWG3572>`__ ``copyable-box`` should be fully ``constexpr`` 2021-10 (Virtual) |Complete| 14.0 |ranges|
128 `LWG3573 <https://wg21.link/LWG3573>`__ Missing Throws element for ``basic_string_view(It begin, End end)`` 2021-10 (Virtual) |Complete| 14.0
129 `LWG3574 <https://wg21.link/LWG3574>`__ ``common_iterator`` should be completely ``constexpr``-able 2021-10 (Virtual) |Complete| 14.0 |ranges|
130 `LWG3580 <https://wg21.link/LWG3580>`__ ``iota_view``'s ``iterator``'s binary ``operator+`` should be improved 2021-10 (Virtual) |Complete| 14.0 |ranges|
131 `LWG3581 <https://wg21.link/LWG3581>`__ The range constructor makes ``basic_string_view`` not trivially move constructible 2021-10 (Virtual) |Complete| 14.0 |ranges|
132 `LWG3585 <https://wg21.link/LWG3585>`__ ``variant`` converting assignment with immovable alternative 2021-10 (Virtual)
133 `LWG3589 <https://wg21.link/LWG3589>`__ The ``const`` lvalue reference overload of ``get`` for ``subrange`` does not constrain ``I`` to be ``copyable`` when ``N == 0`` 2021-10 (Virtual) |Complete| 14.0 |ranges|
134 `LWG3590 <https://wg21.link/LWG3590>`__ ``split_view::base() const &`` is overconstrained 2021-10 (Virtual) |Complete| 16.0 |ranges|
135 `LWG3591 <https://wg21.link/LWG3591>`__ ``lazy_split_view<input_view>::inner-iterator::base() &&`` invalidates outer iterators 2021-10 (Virtual) |ranges|
136 `LWG3592 <https://wg21.link/LWG3592>`__ ``lazy_split_view`` needs to check the simpleness of Pattern 2021-10 (Virtual) |ranges|
137 `LWG3593 <https://wg21.link/LWG3593>`__ Several iterators' ``base() const &`` and ``lazy_split_view::outer-iterator::value_type::end()`` missing ``noexcept`` 2021-10 (Virtual) |ranges|
138 `LWG3595 <https://wg21.link/LWG3595>`__ Exposition-only classes proxy and postfix-proxy for ``common_iterator`` should be fully ``constexpr`` 2021-10 (Virtual) |Complete| 14.0 |ranges|
139
140 `LWG3088 <https://wg21.link/LWG3088>`__ ``forward_list::merge`` behaviour unclear when passed ``*this`` 2022-02 (Virtual)
141 `LWG3471 <https://wg21.link/LWG3471>`__ ``polymorphic_allocator::allocate`` does not satisfy ``Cpp17Allocator`` requirements 2022-02 (Virtual)
142 `LWG3525 <https://wg21.link/LWG3525>`__ ``uses_allocator_construction_args`` fails to handle types convertible to ``pair`` 2022-02 (Virtual)
143 `LWG3598 <https://wg21.link/LWG3598>`__ ``system_category().default_error_condition(0)`` is underspecified 2022-02 (Virtual)
144 `LWG3601 <https://wg21.link/LWG3601>`__ common_iterator's postfix-proxy needs ``indirectly_readable`` 2022-02 (Virtual) |ranges|
145 `LWG3607 <https://wg21.link/LWG3607>`__ ``contiguous_iterator`` should not be allowed to have custom ``iter_move`` and ``iter_swap`` behavior 2022-02 (Virtual) |Nothing To Do| |ranges|
146 `LWG3610 <https://wg21.link/LWG3610>`__ ``iota_view::size`` sometimes rejects integer-class types 2022-02 (Virtual) |ranges|
147 `LWG3612 <https://wg21.link/LWG3612>`__ Inconsistent pointer alignment in ``std::format`` 2022-02 (Virtual) |Complete| 14.0 |format|
148 `LWG3616 <https://wg21.link/LWG3616>`__ LWG 3498 seems to miss the non-member ``swap`` for ``basic_syncbuf`` 2022-02 (Virtual) |Complete| 18.0
149 `LWG3618 <https://wg21.link/LWG3618>`__ Unnecessary ``iter_move`` for ``transform_view::iterator`` 2022-02 (Virtual) |Complete| 19.0 |ranges|
150 `LWG3619 <https://wg21.link/LWG3619>`__ Specification of ``vformat_to`` contains ill-formed ``formatted_size`` calls 2022-02 (Virtual) |Nothing To Do| |format|
151 `LWG3621 <https://wg21.link/LWG3621>`__ Remove feature-test macro ``__cpp_lib_monadic_optional`` 2022-02 (Virtual) |Complete| 15.0
152 `LWG3632 <https://wg21.link/LWG3632>`__ ``unique_ptr`` "Mandates: This constructor is not selected by class template argument deduction" 2022-02 (Virtual) |Nothing To Do|
153 `LWG3643 <https://wg21.link/LWG3643>`__ Missing ``constexpr`` in ``std::counted_iterator`` 2022-02 (Virtual) |Complete| 19.0 |ranges|
154 `LWG3648 <https://wg21.link/LWG3648>`__ ``format`` should not print ``bool`` with ``'c'`` 2022-02 (Virtual) |Complete| 15.0 |format|
155 `LWG3649 <https://wg21.link/LWG3649>`__ [fund.ts.v2] Reinstate and bump ``__cpp_lib_experimental_memory_resource`` feature test macro 2022-02 (Virtual)
156 `LWG3650 <https://wg21.link/LWG3650>`__ Are ``std::basic_string`` 's ``iterator`` and ``const_iterator`` constexpr iterators? 2022-02 (Virtual) |Nothing To Do|
157 `LWG3654 <https://wg21.link/LWG3654>`__ ``basic_format_context::arg(size_t)`` should be ``noexcept`` 2022-02 (Virtual) |Complete| 15.0 |format|
158 `LWG3657 <https://wg21.link/LWG3657>`__ ``std::hash<std::filesystem::path>`` is not enabled 2022-02 (Virtual) |Complete| 17.0
159 `LWG3660 <https://wg21.link/LWG3660>`__ ``iterator_traits<common_iterator>::pointer`` should conform to §[iterator.traits] 2022-02 (Virtual) |Complete| 14.0 |ranges|
160 `LWG3661 <https://wg21.link/LWG3661>`__ ``constinit atomic<shared_ptr<T>> a(nullptr);`` should work 2022-02 (Virtual)
161
162 `LWG3564 <https://wg21.link/LWG3564>`__ ``transform_view::iterator<true>::value_type`` and ``iterator_category`` should use ``const F&`` 2022-07 (Virtual) |Complete| 20.0 |ranges|
163 `LWG3617 <https://wg21.link/LWG3617>`__ ``function``/``packaged_task`` deduction guides and deducing ``this`` 2022-07 (Virtual)
164 `LWG3656 <https://wg21.link/LWG3656>`__ Inconsistent bit operations returning a count 2022-07 (Virtual) |Complete| 15.0
165 `LWG3659 <https://wg21.link/LWG3659>`__ Consider ``ATOMIC_FLAG_INIT`` undeprecation 2022-07 (Virtual) |Complete| 15.0
166 `LWG3670 <https://wg21.link/LWG3670>`__ ``Cpp17InputIterators`` don't have integer-class difference types 2022-07 (Virtual) |ranges|
167 `LWG3671 <https://wg21.link/LWG3671>`__ ``atomic_fetch_xor`` missing from ``stdatomic.h`` 2022-07 (Virtual) |Complete| 20.0
168 `LWG3672 <https://wg21.link/LWG3672>`__ ``common_iterator::operator->()`` should return by value 2022-07 (Virtual) |Complete| 19.0 |ranges|
169 `LWG3683 <https://wg21.link/LWG3683>`__ ``operator==`` for ``polymorphic_allocator`` cannot deduce template argument in common cases 2022-07 (Virtual) |Complete| 20.0
170 `LWG3687 <https://wg21.link/LWG3687>`__ ``expected<cv void, E>`` move constructor should move 2022-07 (Virtual) |Complete| 16.0
171 `LWG3692 <https://wg21.link/LWG3692>`__ ``zip_view::iterator``'s ``operator<=>`` is overconstrained 2022-07 (Virtual) |ranges| |spaceship|
172 `LWG3701 <https://wg21.link/LWG3701>`__ Make ``formatter<remove_cvref_t<const charT[N]>, charT>`` requirement explicit 2022-07 (Virtual) |Complete| 15.0 |format|
173 `LWG3702 <https://wg21.link/LWG3702>`__ Should ``zip_transform_view::iterator`` remove ``operator<`` 2022-07 (Virtual) |ranges| |spaceship|
174 `LWG3703 <https://wg21.link/LWG3703>`__ Missing requirements for ``expected<T, E>`` requires ``is_void<T>`` 2022-07 (Virtual) |Complete| 16.0
175 `LWG3704 <https://wg21.link/LWG3704>`__ LWG 2059 added overloads that might be ill-formed for sets 2022-07 (Virtual)
176 `LWG3705 <https://wg21.link/LWG3705>`__ Hashability shouldn't depend on basic_string's allocator 2022-07 (Virtual) |Complete| 16.0
177 `LWG3707 <https://wg21.link/LWG3707>`__ chunk_view::outer-iterator::value_type::size should return unsigned type 2022-07 (Virtual) |ranges|
178 `LWG3708 <https://wg21.link/LWG3708>`__ ``take_while_view::sentinel``'s conversion constructor should move 2022-07 (Virtual) |Complete| 16.0 |ranges|
179 `LWG3709 <https://wg21.link/LWG3709>`__ LWG-3703 was underly ambitious 2022-07 (Virtual)
180 `LWG3710 <https://wg21.link/LWG3710>`__ The ``end`` of ``chunk_view`` for input ranges can be ``const`` 2022-07 (Virtual) |ranges|
181 `LWG3711 <https://wg21.link/LWG3711>`__ Missing preconditions for slide_view constructor 2022-07 (Virtual) |ranges|
182 `LWG3712 <https://wg21.link/LWG3712>`__ ``chunk_view`` and ``slide_view`` should not be ``default_initializable`` 2022-07 (Virtual) |ranges|
183 `LWG3713 <https://wg21.link/LWG3713>`__ Sorted with respect to comparator (only) 2022-07 (Virtual) |Nothing To Do|
184 `LWG3715 <https://wg21.link/LWG3715>`__ ``view_interface::empty`` is overconstrained 2022-07 (Virtual) |Complete| 19.0 |ranges|
185 `LWG3719 <https://wg21.link/LWG3719>`__ Directory iterators should be usable with default sentinel 2022-07 (Virtual) |Complete| 17.0 |ranges|
186 `LWG3721 <https://wg21.link/LWG3721>`__ Allow an ``arg-id`` with a value of zero for ``width`` in ``std-format-spec`` 2022-07 (Virtual) |Complete| 16.0 |format|
187 `LWG3724 <https://wg21.link/LWG3724>`__ ``decay-copy`` should be constrained 2022-07 (Virtual) |Complete| 14.0
188
189 `LWG3028 <https://wg21.link/LWG3028>`__ Container requirements tables should distinguish ``const`` and non-``const`` variables 2022-11 (Kona)
191 `LWG3177 <https://wg21.link/LWG3177>`__ Limit permission to specialize variable templates to program-defined types 2022-11 (Kona) |Nothing To Do|
192 `LWG3515 <https://wg21.link/LWG3515>`__ §[stacktrace.basic.nonmem]: ``operator<<`` should be less templatized 2022-11 (Kona)
193 `LWG3545 <https://wg21.link/LWG3545>`__ ``std::pointer_traits`` should be SFINAE-friendly 2022-11 (Kona) |Complete| 18.0
194 `LWG3569 <https://wg21.link/LWG3569>`__ ``join_view`` fails to support ranges of ranges with non-default_initializable iterators 2022-11 (Kona) |ranges|
195 `LWG3594 <https://wg21.link/LWG3594>`__ ``inout_ptr`` — inconsistent ``release()`` in destructor 2022-11 (Kona) |Complete| 19.0
196 `LWG3597 <https://wg21.link/LWG3597>`__ Unsigned integer types don't model advanceable 2022-11 (Kona) |ranges|
197 `LWG3600 <https://wg21.link/LWG3600>`__ Making ``istream_iterator`` copy constructor trivial is an ABI break 2022-11 (Kona)
198 `LWG3629 <https://wg21.link/LWG3629>`__ ``make_error_code`` and ``make_error_condition`` are customization points 2022-11 (Kona) |Complete| 16.0
199 `LWG3636 <https://wg21.link/LWG3636>`__ ``formatter<T>::format`` should be ``const``-qualified 2022-11 (Kona) |Complete| 16.0 |format|
200 `LWG3646 <https://wg21.link/LWG3646>`__ ``std::ranges::view_interface::size`` returns a signed type 2022-11 (Kona) |Complete| 16.0 |ranges|
201 `LWG3677 <https://wg21.link/LWG3677>`__ Is a cv-qualified ``pair`` specially handled in uses-allocator construction? 2022-11 (Kona) |Complete| 18.0
202 `LWG3717 <https://wg21.link/LWG3717>`__ ``common_view::end`` should improve ``random_access_range`` case 2022-11 (Kona) |ranges|
203 `LWG3732 <https://wg21.link/LWG3732>`__ ``prepend_range`` and ``append_range`` can't be amortized constant time 2022-11 (Kona) |Nothing To Do| |ranges|
204 `LWG3736 <https://wg21.link/LWG3736>`__ ``move_iterator`` missing ``disable_sized_sentinel_for`` specialization 2022-11 (Kona) |Complete| 19.0 |ranges|
205 `LWG3737 <https://wg21.link/LWG3737>`__ ``take_view::sentinel`` should provide ``operator-`` 2022-11 (Kona) |ranges|
206 `LWG3738 <https://wg21.link/LWG3738>`__ Missing preconditions for ``take_view`` constructor 2022-11 (Kona) |Complete| 16.0 |ranges|
207 `LWG3743 <https://wg21.link/LWG3743>`__ ``ranges::to``'s reserve may be ill-formed 2022-11 (Kona) |ranges|
208 `LWG3745 <https://wg21.link/LWG3745>`__ ``std::atomic_wait`` and its friends lack ``noexcept`` 2022-11 (Kona) |Complete| 16.0
209 `LWG3746 <https://wg21.link/LWG3746>`__ ``optional``'s spaceship with ``U`` with a type derived from optional causes infinite constraint meta-recursion 2022-11 (Kona) |Complete| 17.0 |spaceship|
210 `LWG3747 <https://wg21.link/LWG3747>`__ ``ranges::uninitialized_copy_n``, ``ranges::uninitialized_move_n``, and ``ranges::destroy_n`` should use ``std::move`` 2022-11 (Kona) |ranges|
211 `LWG3750 <https://wg21.link/LWG3750>`__ Too many papers bump ``__cpp_lib_format`` 2022-11 (Kona) |Partial| [#note-LWG3750]_ |Partial| |format| Only ``__cpp_lib_format_ranges`` is fully implemented
212 `LWG3751 <https://wg21.link/LWG3751>`__ Missing feature macro for ``flat_set`` 2022-11 (Kona) |flat_containers|
213 `LWG3753 <https://wg21.link/LWG3753>`__ Clarify entity vs. freestanding entity 2022-11 (Kona)
214 `LWG3754 <https://wg21.link/LWG3754>`__ Class template expected synopsis contains declarations that do not match the detailed description 2022-11 (Kona) |Nothing To Do|
215 `LWG3755 <https://wg21.link/LWG3755>`__ ``tuple-for-each`` can call ``user-defined`` ``operator,`` 2022-11 (Kona) |Complete| 17.0
216 `LWG3757 <https://wg21.link/LWG3757>`__ What's the effect of ``std::forward_like<void>(x)``? 2022-11 (Kona)
217 `LWG3759 <https://wg21.link/LWG3759>`__ ``ranges::rotate_copy`` should use ``std::move`` 2022-11 (Kona) |Complete| 15.0 |ranges|
218 `LWG3760 <https://wg21.link/LWG3760>`__ ``cartesian_product_view::iterator``'s ``parent_`` is never valid 2022-11 (Kona) |ranges|
219 `LWG3761 <https://wg21.link/LWG3761>`__ ``cartesian_product_view::iterator::operator-`` should pass by reference 2022-11 (Kona) |ranges|
220 `LWG3762 <https://wg21.link/LWG3762>`__ ``generator::iterator::operator==`` should pass by reference 2022-11 (Kona)
221 `LWG3764 <https://wg21.link/LWG3764>`__ ``reference_wrapper::operator()`` should propagate noexcept 2022-11 (Kona) |Complete| 17.0
222 `LWG3765 <https://wg21.link/LWG3765>`__ ``const_sentinel`` should be constrained 2022-11 (Kona) |ranges|
223 `LWG3766 <https://wg21.link/LWG3766>`__ ``view_interface::cbegin`` is underconstrained 2022-11 (Kona) |ranges|
224 `LWG3770 <https://wg21.link/LWG3770>`__ ``const_sentinel_t`` is missing 2022-11 (Kona) |ranges|
225 `LWG3773 <https://wg21.link/LWG3773>`__ ``views::zip_transform`` still requires ``F`` to be ``copy_constructible`` when empty pack 2022-11 (Kona) |ranges|
226 `LWG3774 <https://wg21.link/LWG3774>`__ ``<flat_set>`` should include ``<compare>`` 2022-11 (Kona) |flat_containers|
227 `LWG3775 <https://wg21.link/LWG3775>`__ Broken dependencies in the ``Cpp17Allocator`` requirements 2022-11 (Kona)
228 `LWG3778 <https://wg21.link/LWG3778>`__ ``vector<bool>`` missing exception specifications 2022-11 (Kona) |Complete| 3.7
229 `LWG3781 <https://wg21.link/LWG3781>`__ The exposition-only alias templates ``cont-key-type`` and ``cont-mapped-type`` should be removed 2022-11 (Kona) |Nothing To Do|
230 `LWG3782 <https://wg21.link/LWG3782>`__ Should ``<math.h>`` declare ``::lerp``? 2022-11 (Kona) |Complete| 17.0
231 `LWG3784 <https://wg21.link/LWG3784>`__ std.compat should not provide ``::byte`` and its friends 2022-11 (Kona) |Complete| 19.0
232 `LWG3785 <https://wg21.link/LWG3785>`__ ``ranges::to`` is over-constrained on the destination type being a range 2022-11 (Kona) |ranges|
233 `LWG3788 <https://wg21.link/LWG3788>`__ ``jthread::operator=(jthread&&)`` postconditions are unimplementable under self-assignment 2022-11 (Kona)
234 `LWG3792 <https://wg21.link/LWG3792>`__ ``__cpp_lib_constexpr_algorithms`` should also be defined in ``<utility>`` 2022-11 (Kona) |Complete| 16.0
235 `LWG3795 <https://wg21.link/LWG3795>`__ Self-move-assignment of ``std::future`` and ``std::shared_future`` have unimplementable postconditions 2022-11 (Kona)
236 `LWG3796 <https://wg21.link/LWG3796>`__ ``movable-box`` as member should use ``default-initialization`` instead of ``copy-initialization`` 2022-11 (Kona) |ranges|
237 `LWG3798 <https://wg21.link/LWG3798>`__ Rvalue reference and ``iterator_category`` 2022-11 (Kona) |Partial| [#note-LWG3798]_ |Partial| |ranges| ``join_with_view``, ``zip_transform_view``, and ``adjacent_transform_view`` haven't been done yet since these types aren't implemented yet
238 `LWG3801 <https://wg21.link/LWG3801>`__ ``cartesian_product_view::iterator::distance-from`` ignores the size of last underlying range 2022-11 (Kona) |ranges|
239 `LWG3814 <https://wg21.link/LWG3814>`__ Add freestanding items requested by NB comments 2022-11 (Kona)
240 `LWG3816 <https://wg21.link/LWG3816>`__ ``flat_map`` and ``flat_multimap`` should impose sequence container requirements 2022-11 (Kona) |flat_containers|
241 `LWG3817 <https://wg21.link/LWG3817>`__ Missing preconditions on ``forward_list`` modifiers 2022-11 (Kona)
242 `LWG3818 <https://wg21.link/LWG3818>`__ Exposition-only concepts are not described in library intro 2022-11 (Kona) |Nothing To Do|
243 `LWG3822 <https://wg21.link/LWG3822>`__ Avoiding normalization in ``filesystem::weakly_canonical`` 2022-11 (Kona)
249 `LWG2295 <https://wg21.link/LWG2295>`__ Locale name when the provided ``Facet`` is a ``nullptr`` 2023-02 (Issaquah)
250 `LWG3032 <https://wg21.link/LWG3032>`__ ``ValueSwappable`` requirement missing for ``push_heap`` and ``make_heap`` 2023-02 (Issaquah)
251 `LWG3085 <https://wg21.link/LWG3085>`__ ``char_traits::copy`` precondition too weak 2023-02 (Issaquah)
252 `LWG3664 <https://wg21.link/LWG3664>`__ `LWG 3392 <https://wg21.link/LWG3392>`__ ``broke std::ranges::distance(a, a+3)`` 2023-02 (Issaquah) |ranges|
253 `LWG3720 <https://wg21.link/LWG3720>`__ Restrict the valid types of ``arg-id`` for width and precision in ``std-format-spec`` 2023-02 (Issaquah) |Complete| 17.0 |format|
254 `LWG3756 <https://wg21.link/LWG3756>`__ Is the ``std::atomic_flag`` class signal-safe? 2023-02 (Issaquah)
255 `LWG3769 <https://wg21.link/LWG3769>`__ ``basic_const_iterator::operator==`` causes infinite constraint recursion 2023-02 (Issaquah) |spaceship|
256 `LWG3807 <https://wg21.link/LWG3807>`__ The feature test macro for ``ranges::find_last`` should be renamed 2023-02 (Issaquah) |ranges|
257 `LWG3811 <https://wg21.link/LWG3811>`__ ``views::as_const`` on ``ref_view<T>`` should return ``ref_view<const T>`` 2023-02 (Issaquah) |ranges|
258 `LWG3820 <https://wg21.link/LWG3820>`__ ``cartesian_product_view::iterator::prev`` is not quite right 2023-02 (Issaquah) |ranges|
259 `LWG3825 <https://wg21.link/LWG3825>`__ Missing compile-time argument ``id`` check in ``basic_format_parse_context::next_arg_id`` 2023-02 (Issaquah) |Complete| 17.0 |format|
260 `LWG3204 <https://wg21.link/LWG3204>`__ ``sub_match::swap`` only swaps the base class 2023-02 (Issaquah) |Complete| 17.0
261 `LWG3733 <https://wg21.link/LWG3733>`__ ``ranges::to`` misuses ``cpp17-input-iterator`` 2023-02 (Issaquah) |Complete| 17.0 |ranges|
262 `LWG3742 <https://wg21.link/LWG3742>`__ ``deque::prepend_range`` needs to permute 2023-02 (Issaquah) |ranges|
263 `LWG3790 <https://wg21.link/LWG3790>`__ `P1467 <https://wg21.link/P1467>`__ accidentally changed ``nexttoward``'s signature 2023-02 (Issaquah)
264 `LWG3819 <https://wg21.link/LWG3819>`__ ``reference_meows_from_temporary`` should not use ``is_meowible`` 2023-02 (Issaquah)
265 `LWG3821 <https://wg21.link/LWG3821>`__ ``uses_allocator_construction_args`` should have overload for ``pair-like`` 2023-02 (Issaquah) |Complete| 18.0
266 `LWG3834 <https://wg21.link/LWG3834>`__ Missing ``constexpr`` for ``std::intmax_t`` math functions in ``<cinttypes>`` 2023-02 (Issaquah)
267 `LWG3839 <https://wg21.link/LWG3839>`__ ``range_formatter``'s ``set_separator``, ``set_brackets``, and ``underlying`` functions should be ``noexcept`` 2023-02 (Issaquah) |Complete| 17.0 |format|
268 `LWG3841 <https://wg21.link/LWG3841>`__ ``<version>`` should not be "all freestanding" 2023-02 (Issaquah)
269 `LWG3842 <https://wg21.link/LWG3842>`__ Unclear wording for ``precision`` in ``chrono-format-spec`` 2023-02 (Issaquah) |Complete| 16.0 |format|
270 `LWG3848 <https://wg21.link/LWG3848>`__ ``adjacent_view``, ``adjacent_transform_view`` and ``slide_view`` missing ``base`` accessor 2023-02 (Issaquah) |ranges|
271 `LWG3849 <https://wg21.link/LWG3849>`__ ``cartesian_product_view::iterator``'s default constructor is overconstrained 2023-02 (Issaquah) |ranges|
272 `LWG3850 <https://wg21.link/LWG3850>`__ ``views::as_const`` on ``empty_view<T>`` should return ``empty_view<const T>`` 2023-02 (Issaquah) |ranges|
273 `LWG3851 <https://wg21.link/LWG3851>`__ ``chunk_view::inner-iterator`` missing custom ``iter_move`` and ``iter_swap`` 2023-02 (Issaquah) |ranges|
274 `LWG3853 <https://wg21.link/LWG3853>`__ ``basic_const_iterator<volatile int*>::operator->`` is ill-formed 2023-02 (Issaquah)
275 `LWG3857 <https://wg21.link/LWG3857>`__ ``basic_string_view`` should allow explicit conversion when only traits vary 2023-02 (Issaquah) |Complete| 17.0
276 `LWG3860 <https://wg21.link/LWG3860>`__ ``range_common_reference_t`` is missing 2023-02 (Issaquah) |Complete| 17.0 |ranges|
277 `LWG3866 <https://wg21.link/LWG3866>`__ Bad Mandates for ``expected::transform_error`` overloads 2023-02 (Issaquah) |Complete| 17.0
278 `LWG3867 <https://wg21.link/LWG3867>`__ Should ``std::basic_osyncstream``'s move assignment operator be ``noexcept``? 2023-02 (Issaquah) |Complete| 18.0
279 `LWG3441 <https://wg21.link/LWG3441>`__ Misleading note about calls to customization points 2023-02 (Issaquah)
281 `LWG3631 <https://wg21.link/LWG3631>`__ ``basic_format_arg(T&&)`` should use ``remove_cvref_t<T>`` throughout 2023-02 (Issaquah) |Complete| 17.0
282 `LWG3645 <https://wg21.link/LWG3645>`__ ``resize_and_overwrite`` is overspecified to call its callback with lvalues 2023-02 (Issaquah) |Complete| 14.0
283 `LWG3655 <https://wg21.link/LWG3655>`__ The ``INVOKE`` operation and union types 2023-02 (Issaquah) |Complete| 18.0
284 `LWG3723 <https://wg21.link/LWG3723>`__ ``priority_queue::push_range`` needs to ``append_range`` 2023-02 (Issaquah) |ranges|
285 `LWG3734 <https://wg21.link/LWG3734>`__ Inconsistency in ``inout_ptr`` and ``out_ptr`` for empty case 2023-02 (Issaquah) |Complete| 19.0
286 `LWG3772 <https://wg21.link/LWG3772>`__ ``repeat_view``'s ``piecewise`` constructor is missing Postconditions 2023-02 (Issaquah) |Complete| 17.0 |ranges|
287 `LWG3786 <https://wg21.link/LWG3786>`__ Flat maps' deduction guide needs to default ``Allocator`` to be useful 2023-02 (Issaquah)
288 `LWG3803 <https://wg21.link/LWG3803>`__ ``flat_foo`` constructors taking ``KeyContainer`` lack ``KeyCompare`` parameter 2023-02 (Issaquah)
289 `LWG3810 <https://wg21.link/LWG3810>`__ CTAD for ``std::basic_format_args`` 2023-02 (Issaquah) |Complete| 17.0 |format|
290 `LWG3827 <https://wg21.link/LWG3827>`__ Deprecate ``<stdalign.h>`` and ``<stdbool.h>`` macros 2023-02 (Issaquah)
291 `LWG3828 <https://wg21.link/LWG3828>`__ Sync ``intmax_t`` and ``uintmax_t`` with C2x 2023-02 (Issaquah) |Nothing To Do|
292 `LWG3833 <https://wg21.link/LWG3833>`__ Remove specialization ``template<size_t N> struct formatter<const charT[N], charT>`` 2023-02 (Issaquah) |Complete| 17.0 |format|
293 `LWG3836 <https://wg21.link/LWG3836>`__ ``std::expected<bool, E1>`` conversion constructor ``expected(const expected<U, G>&)`` should take precedence over ``expected(U&&)`` with operator ``bool`` 2023-02 (Issaquah) |Complete| 18.0
294 `LWG3843 <https://wg21.link/LWG3843>`__ ``std::expected<T,E>::value() &`` assumes ``E`` is copy constructible 2023-02 (Issaquah) |Complete| 17.0
295 `LWG3847 <https://wg21.link/LWG3847>`__ ``ranges::to`` can still return views 2023-02 (Issaquah) |Complete| 17.0 |ranges|
296 `LWG3862 <https://wg21.link/LWG3862>`__ ``basic_const_iterator``'s ``common_type`` specialization is underconstrained 2023-02 (Issaquah)
297 `LWG3865 <https://wg21.link/LWG3865>`__ Sorting a range of ``pairs`` 2023-02 (Issaquah) |Complete| 17.0 |ranges|
298 `LWG3869 <https://wg21.link/LWG3869>`__ Deprecate ``std::errc`` constants related to UNIX STREAMS 2023-02 (Issaquah) |Complete| 19.0
299 `LWG3870 <https://wg21.link/LWG3870>`__ Remove ``voidify`` 2023-02 (Issaquah)
300 `LWG3871 <https://wg21.link/LWG3871>`__ Adjust note about ``terminate`` 2023-02 (Issaquah)
301 `LWG3872 <https://wg21.link/LWG3872>`__ ``basic_const_iterator`` should have custom ``iter_move`` 2023-02 (Issaquah)
302 `LWG3875 <https://wg21.link/LWG3875>`__ ``std::ranges::repeat_view<T, IntegerClass>::iterator`` may be ill-formed 2023-02 (Issaquah) |Complete| 17.0 |ranges|
303 `LWG3876 <https://wg21.link/LWG3876>`__ Default constructor of ``std::layout_XX::mapping`` misses precondition 2023-02 (Issaquah)
304 `LWG3877 <https://wg21.link/LWG3877>`__ Incorrect constraints on ``const``-qualified monadic overloads for ``std::expected`` 2023-02 (Issaquah) |Complete| 17.0
305 `LWG3878 <https://wg21.link/LWG3878>`__ import ``std;`` should guarantee initialization of standard iostreams objects 2023-02 (Issaquah)
306 `LWG3879 <https://wg21.link/LWG3879>`__ ``erase_if`` for ``flat_{,multi}set`` is incorrectly specified 2023-02 (Issaquah)
307 `LWG3880 <https://wg21.link/LWG3880>`__ Clarify ``operator+=`` complexity for ``{chunk,stride}_view::iterator`` 2023-02 (Issaquah) |ranges|
308 `LWG3881 <https://wg21.link/LWG3881>`__ Incorrect formatting of container adapters backed by ``std::string`` 2023-02 (Issaquah) |Complete| 17.0 |format|

View File

@ -1,25 +1,25 @@
"Paper #","Paper Name","Meeting","Status","First released version","Labels"
"Paper #","Paper Name","Meeting","Status","First released version","Notes"
"`P0881R7 <https://wg21.link/P0881R7>`__","A Proposal to add stacktrace library","2020-11 (Virtual)","","",""
"`P0943R6 <https://wg21.link/P0943R6>`__","Support C atomics in C++","2020-11 (Virtual)","|Complete|","15.0",""
"`P1048R1 <https://wg21.link/P1048R1>`__","A proposal for a type trait to detect scoped enumerations","2020-11 (Virtual)","|Complete|","12.0",""
"`P1679R3 <https://wg21.link/P1679R3>`__","string contains function","2020-11 (Virtual)","|Complete|","12.0",""
"","","","","",""
"`P1682R3 <https://wg21.link/P1682R3>`__","std::to_underlying for enumerations","2021-02 (Virtual)","|Complete|","13.0",""
"`P2017R1 <https://wg21.link/P2017R1>`__","Conditionally borrowed ranges","2021-02 (Virtual)","|Complete|","16.0","|ranges|"
"`P2017R1 <https://wg21.link/P2017R1>`__","Conditionally borrowed ranges","2021-02 (Virtual)","|Complete|","16.0",""
"`P2160R1 <https://wg21.link/P2160R1>`__","Locks lock lockables","2021-02 (Virtual)","|Nothing To Do|","",""
"`P2162R2 <https://wg21.link/P2162R2>`__","Inheriting from std::variant","2021-02 (Virtual)","|Complete|","13.0",""
"`P2212R2 <https://wg21.link/P2212R2>`__","Relax Requirements for time_point::clock","2021-02 (Virtual)","|Nothing To Do|","",""
"`P2259R1 <https://wg21.link/P2259R1>`__","Repairing input range adaptors and counted_iterator","2021-02 (Virtual)","","","|ranges|"
"`P2259R1 <https://wg21.link/P2259R1>`__","Repairing input range adaptors and counted_iterator","2021-02 (Virtual)","","",""
"","","","","",""
"`P0401R6 <https://wg21.link/P0401R6>`__","Providing size feedback in the Allocator interface","2021-06 (Virtual)","|Complete|","15.0",""
"`P0448R4 <https://wg21.link/P0448R4>`__","A strstream replacement using span<charT> as buffer","2021-06 (Virtual)","","",""
"`P1132R8 <https://wg21.link/P1132R8>`__","out_ptr - a scalable output pointer abstraction","2021-06 (Virtual)","|Complete|","19.0",""
"`P1328R1 <https://wg21.link/P1328R1>`__","Making std::type_info::operator== constexpr","2021-06 (Virtual)","|Complete|","17.0",""
"`P1425R4 <https://wg21.link/P1425R4>`__","Iterators pair constructors for stack and queue","2021-06 (Virtual)","|Complete|","14.0","|ranges|"
"`P1425R4 <https://wg21.link/P1425R4>`__","Iterators pair constructors for stack and queue","2021-06 (Virtual)","|Complete|","14.0",""
"`P1518R2 <https://wg21.link/P1518R2>`__","Stop overconstraining allocators in container deduction guides","2021-06 (Virtual)","|Complete|","13.0",""
"`P1659R3 <https://wg21.link/P1659R3>`__","starts_with and ends_with","2021-06 (Virtual)","|Complete|","19.0","|ranges|"
"`P1659R3 <https://wg21.link/P1659R3>`__","starts_with and ends_with","2021-06 (Virtual)","|Complete|","19.0",""
"`P1951R1 <https://wg21.link/P1951R1>`__","Default Arguments for pair Forwarding Constructor","2021-06 (Virtual)","|Complete|","14.0",""
"`P1989R2 <https://wg21.link/P1989R2>`__","Range constructor for std::string_view","2021-06 (Virtual)","|Complete|","14.0","|ranges|"
"`P1989R2 <https://wg21.link/P1989R2>`__","Range constructor for std::string_view","2021-06 (Virtual)","|Complete|","14.0",""
"`P2136R3 <https://wg21.link/P2136R3>`__","invoke_r","2021-06 (Virtual)","|Complete|","17.0",""
"`P2166R1 <https://wg21.link/P2166R1>`__","A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr","2021-06 (Virtual)","|Complete|","13.0",""
"","","","","",""
@ -33,59 +33,59 @@
"`P2077R3 <https://wg21.link/P2077R3>`__","Heterogeneous erasure overloads for associative containers","2021-10 (Virtual)","","",""
"`P2251R1 <https://wg21.link/P2251R1>`__","Require ``span`` & ``basic_string_view`` to be Trivially Copyable","2021-10 (Virtual)","|Complete|","14.0",""
"`P2301R1 <https://wg21.link/P2301R1>`__","Add a ``pmr`` alias for ``std::stacktrace``","2021-10 (Virtual)","","",""
"`P2321R2 <https://wg21.link/P2321R2>`__","``zip``","2021-10 (Virtual)","|In Progress|","","|ranges|"
"`P2321R2 <https://wg21.link/P2321R2>`__","``zip``","2021-10 (Virtual)","|In Progress|","",""
"`P2340R1 <https://wg21.link/P2340R1>`__","Clarifying the status of the 'C headers'","2021-10 (Virtual)","|Nothing To Do|","",""
"`P2393R1 <https://wg21.link/P2393R1>`__","Cleaning up ``integer``-class types","2021-10 (Virtual)","","",""
"`P2401R0 <https://wg21.link/P2401R0>`__","Add a conditional ``noexcept`` specification to ``std::exchange``","2021-10 (Virtual)","|Complete|","14.0",""
"","","","","",""
"`P0323R12 <https://wg21.link/P0323R12>`__","``std::expected``","2022-02 (Virtual)","|Complete|","16.0",""
"`P0533R9 <https://wg21.link/P0533R9>`__","``constexpr`` for ``<cmath>`` and ``<cstdlib>``","2022-02 (Virtual)","|In Progress| [#note-P0533R9]_","",""
"`P0533R9 <https://wg21.link/P0533R9>`__","``constexpr`` for ``<cmath>`` and ``<cstdlib>``","2022-02 (Virtual)","|In Progress|","","``isfinite``, ``isinf``, ``isnan`` and ``isnormal`` are implemented"
"`P0627R6 <https://wg21.link/P0627R6>`__","Function to mark unreachable code","2022-02 (Virtual)","|Complete|","15.0",""
"`P1206R7 <https://wg21.link/P1206R7>`__","``ranges::to``: A function to convert any range to a container","2022-02 (Virtual)","|Complete|","17.0","|ranges|"
"`P1413R3 <https://wg21.link/P1413R3>`__","Deprecate ``std::aligned_storage`` and ``std::aligned_union``","2022-02 (Virtual)","|Complete| [#note-P1413R3]_","",""
"`P1206R7 <https://wg21.link/P1206R7>`__","``ranges::to``: A function to convert any range to a container","2022-02 (Virtual)","|Complete|","17.0",""
"`P1413R3 <https://wg21.link/P1413R3>`__","Deprecate ``std::aligned_storage`` and ``std::aligned_union``","2022-02 (Virtual)","|Complete|","","``std::aligned_storage_t`` and ``std::aligned_union_t`` are marked deprecated, but clang doesn't issue a diagnostic for deprecated using template declarations."
"`P2255R2 <https://wg21.link/P2255R2>`__","A type trait to detect reference binding to temporary","2022-02 (Virtual)","","",""
"`P2273R3 <https://wg21.link/P2273R3>`__","Making ``std::unique_ptr`` constexpr","2022-02 (Virtual)","|Complete|","16.0",""
"`P2387R3 <https://wg21.link/P2387R3>`__","Pipe support for user-defined range adaptors","2022-02 (Virtual)","|Complete|","19.0","|ranges|"
"`P2440R1 <https://wg21.link/P2440R1>`__","``ranges::iota``, ``ranges::shift_left`` and ``ranges::shift_right``","2022-02 (Virtual)","","","|ranges|"
"`P2441R2 <https://wg21.link/P2441R2>`__","``views::join_with``","2022-02 (Virtual)","|In Progress|","","|ranges|"
"`P2442R1 <https://wg21.link/P2442R1>`__","Windowing range adaptors: ``views::chunk`` and ``views::slide``","2022-02 (Virtual)","","","|ranges|"
"`P2443R1 <https://wg21.link/P2443R1>`__","``views::chunk_by``","2022-02 (Virtual)","|Complete|","18.0","|ranges|"
"`P2387R3 <https://wg21.link/P2387R3>`__","Pipe support for user-defined range adaptors","2022-02 (Virtual)","|Complete|","19.0",""
"`P2440R1 <https://wg21.link/P2440R1>`__","``ranges::iota``, ``ranges::shift_left`` and ``ranges::shift_right``","2022-02 (Virtual)","","",""
"`P2441R2 <https://wg21.link/P2441R2>`__","``views::join_with``","2022-02 (Virtual)","|In Progress|","",""
"`P2442R1 <https://wg21.link/P2442R1>`__","Windowing range adaptors: ``views::chunk`` and ``views::slide``","2022-02 (Virtual)","","",""
"`P2443R1 <https://wg21.link/P2443R1>`__","``views::chunk_by``","2022-02 (Virtual)","|Complete|","18.0",""
"","","","","",""
"`P0009R18 <https://wg21.link/P0009R18>`__","mdspan: A Non-Owning Multidimensional Array Reference","2022-07 (Virtual)","|Complete|","18.0",""
"`P0429R9 <https://wg21.link/P0429R9>`__","A Standard ``flat_map``","2022-07 (Virtual)","","",""
"`P1169R4 <https://wg21.link/P1169R4>`__","``static operator()``","2022-07 (Virtual)","|Complete|","16.0",""
"`P1222R4 <https://wg21.link/P1222R4>`__","A Standard ``flat_set``","2022-07 (Virtual)","","",""
"`P1223R5 <https://wg21.link/P1223R5>`__","``ranges::find_last()``, ``ranges::find_last_if()``, and ``ranges::find_last_if_not()``","2022-07 (Virtual)","|Complete|","19.0","|ranges|"
"`P1223R5 <https://wg21.link/P1223R5>`__","``ranges::find_last()``, ``ranges::find_last_if()``, and ``ranges::find_last_if_not()``","2022-07 (Virtual)","|Complete|","19.0",""
"`P1467R9 <https://wg21.link/P1467R9>`__","Extended ``floating-point`` types and standard names","2022-07 (Virtual)","","",""
"`P1642R11 <https://wg21.link/P1642R11>`__","Freestanding ``[utilities]``, ``[ranges]``, and ``[iterators]``","2022-07 (Virtual)","","",""
"`P1899R3 <https://wg21.link/P1899R3>`__","``stride_view``","2022-07 (Virtual)","","","|ranges|"
"`P2093R14 <https://wg21.link/P2093R14>`__","Formatted output","2022-07 (Virtual)","|Complete|","18.0","|format|"
"`P1899R3 <https://wg21.link/P1899R3>`__","``stride_view``","2022-07 (Virtual)","","",""
"`P2093R14 <https://wg21.link/P2093R14>`__","Formatted output","2022-07 (Virtual)","|Complete|","18.0",""
"`P2165R4 <https://wg21.link/P2165R4>`__","Compatibility between ``tuple``, ``pair`` and ``tuple-like`` objects","2022-07 (Virtual)","","",""
"`P2278R4 <https://wg21.link/P2278R4>`__","``cbegin`` should always return a constant iterator","2022-07 (Virtual)","","","|ranges|"
"`P2286R8 <https://wg21.link/P2286R8>`__","Formatting Ranges","2022-07 (Virtual)","|Complete|","16.0","|format| |ranges|"
"`P2278R4 <https://wg21.link/P2278R4>`__","``cbegin`` should always return a constant iterator","2022-07 (Virtual)","","",""
"`P2286R8 <https://wg21.link/P2286R8>`__","Formatting Ranges","2022-07 (Virtual)","|Complete|","16.0",""
"`P2291R3 <https://wg21.link/P2291R3>`__","Add Constexpr Modifiers to Functions ``to_chars`` and ``from_chars`` for Integral Types in ``<charconv>`` Header","2022-07 (Virtual)","|Complete|","16.0",""
"`P2302R4 <https://wg21.link/P2302R4>`__","``std::ranges::contains``","2022-07 (Virtual)","|Complete|","19.0","|ranges|"
"`P2322R6 <https://wg21.link/P2322R6>`__","``ranges::fold``","2022-07 (Virtual)","","","|ranges|"
"`P2374R4 <https://wg21.link/P2374R4>`__","``views::cartesian_product``","2022-07 (Virtual)","","","|ranges|"
"`P2302R4 <https://wg21.link/P2302R4>`__","``std::ranges::contains``","2022-07 (Virtual)","|Complete|","19.0",""
"`P2322R6 <https://wg21.link/P2322R6>`__","``ranges::fold``","2022-07 (Virtual)","","",""
"`P2374R4 <https://wg21.link/P2374R4>`__","``views::cartesian_product``","2022-07 (Virtual)","","",""
"`P2404R3 <https://wg21.link/P2404R3>`__","Move-only types for ``equality_comparable_with``, ``totally_ordered_with``, and ``three_way_comparable_with``","2022-07 (Virtual)","","",""
"`P2408R5 <https://wg21.link/P2408R5>`__","Ranges iterators as inputs to non-Ranges algorithms","2022-07 (Virtual)","","","|ranges|"
"`P2408R5 <https://wg21.link/P2408R5>`__","Ranges iterators as inputs to non-Ranges algorithms","2022-07 (Virtual)","","",""
"`P2417R2 <https://wg21.link/P2417R2>`__","A more ``constexpr`` ``bitset``","2022-07 (Virtual)","|Complete|","16.0",""
"`P2419R2 <https://wg21.link/P2419R2>`__","Clarify handling of encodings in localized formatting of chrono types","2022-07 (Virtual)","","",""
"`P2438R2 <https://wg21.link/P2438R2>`__","``std::string::substr() &&``","2022-07 (Virtual)","|Complete|","16.0",""
"`P2445R1 <https://wg21.link/P2445R1>`__","``forward_like``","2022-07 (Virtual)","|Complete|","16.0",""
"`P2446R2 <https://wg21.link/P2446R2>`__","``views::as_rvalue``","2022-07 (Virtual)","|Complete|","16.0","|ranges|"
"`P2446R2 <https://wg21.link/P2446R2>`__","``views::as_rvalue``","2022-07 (Virtual)","|Complete|","16.0",""
"`P2460R2 <https://wg21.link/P2460R2>`__","Relax requirements on ``wchar_t`` to match existing practices","2022-07 (Virtual)","|Nothing To Do|","",""
"`P2465R3 <https://wg21.link/P2465R3>`__","Standard Library Modules ``std`` and ``std.compat``","2022-07 (Virtual)","|Complete|","19.0",""
"`P2467R1 <https://wg21.link/P2467R1>`__","Support exclusive mode for ``fstreams``","2022-07 (Virtual)","|Complete|","18.0",""
"`P2474R2 <https://wg21.link/P2474R2>`__","``views::repeat``","2022-07 (Virtual)","|Complete|","17.0","|ranges|"
"`P2494R2 <https://wg21.link/P2494R2>`__","Relaxing range adaptors to allow for move only types","2022-07 (Virtual)","|Complete|","17.0","|ranges|"
"`P2499R0 <https://wg21.link/P2499R0>`__","``string_view`` range constructor should be ``explicit``","2022-07 (Virtual)","|Complete|","16.0","|ranges|"
"`P2502R2 <https://wg21.link/P2502R2>`__","``std::generator``: Synchronous Coroutine Generator for Ranges","2022-07 (Virtual)","","","|ranges|"
"`P2474R2 <https://wg21.link/P2474R2>`__","``views::repeat``","2022-07 (Virtual)","|Complete|","17.0",""
"`P2494R2 <https://wg21.link/P2494R2>`__","Relaxing range adaptors to allow for move only types","2022-07 (Virtual)","|Complete|","17.0",""
"`P2499R0 <https://wg21.link/P2499R0>`__","``string_view`` range constructor should be ``explicit``","2022-07 (Virtual)","|Complete|","16.0",""
"`P2502R2 <https://wg21.link/P2502R2>`__","``std::generator``: Synchronous Coroutine Generator for Ranges","2022-07 (Virtual)","","",""
"`P2508R1 <https://wg21.link/P2508R1>`__","Exposing ``std::basic-format-string``","2022-07 (Virtual)","|Complete|","15.0",""
"`P2513R4 <https://wg21.link/P2513R4>`__","``char8_t`` Compatibility and Portability Fixes","2022-07 (Virtual)","","",""
"`P2517R1 <https://wg21.link/P2517R1>`__","Add a conditional ``noexcept`` specification to ``std::apply``","2022-07 (Virtual)","|Complete|","3.9",""
"`P2520R0 <https://wg21.link/P2520R0>`__","``move_iterator`` should be a random access iterator","2022-07 (Virtual)","|Complete| [#note-P2520R0]_","17.0","|ranges|"
"`P2540R1 <https://wg21.link/P2540R1>`__","Empty Product for certain Views","2022-07 (Virtual)","","","|ranges|"
"`P2520R0 <https://wg21.link/P2520R0>`__","``move_iterator`` should be a random access iterator","2022-07 (Virtual)","|Complete|","17.0","Implemented as a DR in C++20"
"`P2540R1 <https://wg21.link/P2540R1>`__","Empty Product for certain Views","2022-07 (Virtual)","","",""
"`P2549R1 <https://wg21.link/P2549R1>`__","``std::unexpected`` should have ``error()`` as member accessor","2022-07 (Virtual)","|Complete|","16.0",""
"`P2585R0 <https://wg21.link/P2585R0>`__","Improving default container formatting","2022-07 (Virtual)","|Complete|","17.0",""
"`P2590R2 <https://wg21.link/P2590R2>`__","Explicit lifetime management","2022-07 (Virtual)","","",""
@ -93,25 +93,25 @@
"`P2604R0 <https://wg21.link/P2604R0>`__","mdspan: rename pointer and contiguous","2022-07 (Virtual)","|Complete|","18.0",""
"`P2613R1 <https://wg21.link/P2613R1>`__","Add the missing ``empty`` to ``mdspan``","2022-07 (Virtual)","|Complete|","18.0",""
"","","","","",""
"`P1202R5 <https://wg21.link/P1202R5>`__","Asymmetric Fences","2022-11 (Kona)","","","|concurrency TS|"
"`P1202R5 <https://wg21.link/P1202R5>`__","Asymmetric Fences","2022-11 (Kona)","","",""
"`P1264R2 <https://wg21.link/P1264R2>`__","Revising the wording of ``stream`` input operations","2022-11 (Kona)","|Complete|","9.0",""
"`P1478R8 <https://wg21.link/P1478R8>`__","``Byte-wise`` ``atomic`` ``memcpy``","2022-11 (Kona)","","","|concurrency TS|"
"`P1478R8 <https://wg21.link/P1478R8>`__","``Byte-wise`` ``atomic`` ``memcpy``","2022-11 (Kona)","","",""
"`P2167R3 <https://wg21.link/P2167R3>`__","Improved Proposed Wording for LWG 2114","2022-11 (Kona)","","",""
"`P2396R1 <https://wg21.link/P2396R1>`__","Concurrency TS 2 fixes ","2022-11 (Kona)","","","|concurrency TS|"
"`P2396R1 <https://wg21.link/P2396R1>`__","Concurrency TS 2 fixes ","2022-11 (Kona)","","",""
"`P2505R5 <https://wg21.link/P2505R5>`__","Monadic Functions for ``std::expected``","2022-11 (Kona)","|Complete|","17.0",""
"`P2539R4 <https://wg21.link/P2539R4>`__","Should the output of ``std::print`` to a terminal be synchronized with the underlying stream?","2022-11 (Kona)","|Complete|","18.0","|format|"
"`P2602R2 <https://wg21.link/P2602R2>`__","Poison Pills are Too Toxic","2022-11 (Kona)","|Complete|","19.0","|ranges|"
"`P2539R4 <https://wg21.link/P2539R4>`__","Should the output of ``std::print`` to a terminal be synchronized with the underlying stream?","2022-11 (Kona)","|Complete|","18.0",""
"`P2602R2 <https://wg21.link/P2602R2>`__","Poison Pills are Too Toxic","2022-11 (Kona)","|Complete|","19.0",""
"`P2708R1 <https://wg21.link/P2708R1>`__","No Further Fundamentals TSes","2022-11 (Kona)","|Nothing To Do|","",""
"","","","","",""
"`P0290R4 <https://wg21.link/P0290R4>`__","``apply()`` for ``synchronized_value<T>``","2023-02 (Issaquah)","","","|concurrency TS|"
"`P2770R0 <https://wg21.link/P2770R0>`__","Stashing stashing ``iterators`` for proper flattening","2023-02 (Issaquah)","|Partial| [#note-P2770R0]_","","|ranges|"
"`P2164R9 <https://wg21.link/P2164R9>`__","``views::enumerate``","2023-02 (Issaquah)","","","|ranges|"
"`P2711R1 <https://wg21.link/P2711R1>`__","Making multi-param constructors of ``views`` ``explicit``","2023-02 (Issaquah)","|In Progress| [#note-P2711R1]_","","|ranges|"
"`P2609R3 <https://wg21.link/P2609R3>`__","Relaxing Ranges Just A Smidge","2023-02 (Issaquah)","|Complete| [#note-P2609R3]_","20.0","|ranges|"
"`P2713R1 <https://wg21.link/P2713R1>`__","Escaping improvements in ``std::format``","2023-02 (Issaquah)","|Complete|","19.0","|format|"
"`P2675R1 <https://wg21.link/P2675R1>`__","``format``'s width estimation is too approximate and not forward compatible","2023-02 (Issaquah)","|Complete|","17.0","|format|"
"`P2572R1 <https://wg21.link/P2572R1>`__","``std::format`` fill character allowances","2023-02 (Issaquah)","|Complete|","17.0","|format|"
"`P2693R1 <https://wg21.link/P2693R1>`__","Formatting ``thread::id`` and ``stacktrace``","2023-02 (Issaquah)","|Partial| [#note-P2693R1]_","","|format|"
"`P0290R4 <https://wg21.link/P0290R4>`__","``apply()`` for ``synchronized_value<T>``","2023-02 (Issaquah)","","",""
"`P2770R0 <https://wg21.link/P2770R0>`__","Stashing stashing ``iterators`` for proper flattening","2023-02 (Issaquah)","|Partial|","","``join_with_view`` hasn't been done yet since this type isn't implemented yet"
"`P2164R9 <https://wg21.link/P2164R9>`__","``views::enumerate``","2023-02 (Issaquah)","","",""
"`P2711R1 <https://wg21.link/P2711R1>`__","Making multi-param constructors of ``views`` ``explicit``","2023-02 (Issaquah)","|In Progress|","","``join_with_view`` hasn't been done yet since this type isn't implemented yet"
"`P2609R3 <https://wg21.link/P2609R3>`__","Relaxing Ranges Just A Smidge","2023-02 (Issaquah)","|Complete|","20.0","Implemented as a DR in C++20. Other implementations will do the same."
"`P2713R1 <https://wg21.link/P2713R1>`__","Escaping improvements in ``std::format``","2023-02 (Issaquah)","|Complete|","19.0",""
"`P2675R1 <https://wg21.link/P2675R1>`__","``format``'s width estimation is too approximate and not forward compatible","2023-02 (Issaquah)","|Complete|","17.0",""
"`P2572R1 <https://wg21.link/P2572R1>`__","``std::format`` fill character allowances","2023-02 (Issaquah)","|Complete|","17.0",""
"`P2693R1 <https://wg21.link/P2693R1>`__","Formatting ``thread::id`` and ``stacktrace``","2023-02 (Issaquah)","|Partial|","","The formatter for ``stacktrace`` is not implemented, since ``stacktrace`` is not implemented yet"
"`P2679R2 <https://wg21.link/P2679R2>`__","Fixing ``std::start_lifetime_as`` for arrays","2023-02 (Issaquah)","","",""
"`P2674R1 <https://wg21.link/P2674R1>`__","A trait for implicit lifetime types","2023-02 (Issaquah)","","",""
"`P2655R3 <https://wg21.link/P2655R3>`__","``common_reference_t`` of ``reference_wrapper`` Should Be a Reference Type","2023-02 (Issaquah)","","",""
@ -120,4 +120,4 @@
"`P2614R2 <https://wg21.link/P2614R2>`__","Deprecate ``numeric_limits::has_denorm``","2023-02 (Issaquah)","|Complete|","18.0",""
"`P2588R3 <https://wg21.link/P2588R3>`__","``barrier``s phase completion guarantees","2023-02 (Issaquah)","","",""
"`P2763R1 <https://wg21.link/P2763R1>`__","``layout_stride`` static extents default constructor fix","2023-02 (Issaquah)","","",""
"`P2736R2 <https://wg21.link/P2736R2>`__","Referencing The Unicode Standard","2023-02 (Issaquah)","|Complete|","19.0","|format|"
"`P2736R2 <https://wg21.link/P2736R2>`__","Referencing The Unicode Standard","2023-02 (Issaquah)","|Complete|","19.0",""

1 Paper # Paper Name Meeting Status First released version Labels Notes
2 `P0881R7 <https://wg21.link/P0881R7>`__ A Proposal to add stacktrace library 2020-11 (Virtual)
3 `P0943R6 <https://wg21.link/P0943R6>`__ Support C atomics in C++ 2020-11 (Virtual) |Complete| 15.0
4 `P1048R1 <https://wg21.link/P1048R1>`__ A proposal for a type trait to detect scoped enumerations 2020-11 (Virtual) |Complete| 12.0
5 `P1679R3 <https://wg21.link/P1679R3>`__ string contains function 2020-11 (Virtual) |Complete| 12.0
6
7 `P1682R3 <https://wg21.link/P1682R3>`__ std::to_underlying for enumerations 2021-02 (Virtual) |Complete| 13.0
8 `P2017R1 <https://wg21.link/P2017R1>`__ Conditionally borrowed ranges 2021-02 (Virtual) |Complete| 16.0 |ranges|
9 `P2160R1 <https://wg21.link/P2160R1>`__ Locks lock lockables 2021-02 (Virtual) |Nothing To Do|
10 `P2162R2 <https://wg21.link/P2162R2>`__ Inheriting from std::variant 2021-02 (Virtual) |Complete| 13.0
11 `P2212R2 <https://wg21.link/P2212R2>`__ Relax Requirements for time_point::clock 2021-02 (Virtual) |Nothing To Do|
12 `P2259R1 <https://wg21.link/P2259R1>`__ Repairing input range adaptors and counted_iterator 2021-02 (Virtual) |ranges|
13
14 `P0401R6 <https://wg21.link/P0401R6>`__ Providing size feedback in the Allocator interface 2021-06 (Virtual) |Complete| 15.0
15 `P0448R4 <https://wg21.link/P0448R4>`__ A strstream replacement using span<charT> as buffer 2021-06 (Virtual)
16 `P1132R8 <https://wg21.link/P1132R8>`__ out_ptr - a scalable output pointer abstraction 2021-06 (Virtual) |Complete| 19.0
17 `P1328R1 <https://wg21.link/P1328R1>`__ Making std::type_info::operator== constexpr 2021-06 (Virtual) |Complete| 17.0
18 `P1425R4 <https://wg21.link/P1425R4>`__ Iterators pair constructors for stack and queue 2021-06 (Virtual) |Complete| 14.0 |ranges|
19 `P1518R2 <https://wg21.link/P1518R2>`__ Stop overconstraining allocators in container deduction guides 2021-06 (Virtual) |Complete| 13.0
20 `P1659R3 <https://wg21.link/P1659R3>`__ starts_with and ends_with 2021-06 (Virtual) |Complete| 19.0 |ranges|
21 `P1951R1 <https://wg21.link/P1951R1>`__ Default Arguments for pair Forwarding Constructor 2021-06 (Virtual) |Complete| 14.0
22 `P1989R2 <https://wg21.link/P1989R2>`__ Range constructor for std::string_view 2021-06 (Virtual) |Complete| 14.0 |ranges|
23 `P2136R3 <https://wg21.link/P2136R3>`__ invoke_r 2021-06 (Virtual) |Complete| 17.0
24 `P2166R1 <https://wg21.link/P2166R1>`__ A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr 2021-06 (Virtual) |Complete| 13.0
25
33 `P2077R3 <https://wg21.link/P2077R3>`__ Heterogeneous erasure overloads for associative containers 2021-10 (Virtual)
34 `P2251R1 <https://wg21.link/P2251R1>`__ Require ``span`` & ``basic_string_view`` to be Trivially Copyable 2021-10 (Virtual) |Complete| 14.0
35 `P2301R1 <https://wg21.link/P2301R1>`__ Add a ``pmr`` alias for ``std::stacktrace`` 2021-10 (Virtual)
36 `P2321R2 <https://wg21.link/P2321R2>`__ ``zip`` 2021-10 (Virtual) |In Progress| |ranges|
37 `P2340R1 <https://wg21.link/P2340R1>`__ Clarifying the status of the 'C headers' 2021-10 (Virtual) |Nothing To Do|
38 `P2393R1 <https://wg21.link/P2393R1>`__ Cleaning up ``integer``-class types 2021-10 (Virtual)
39 `P2401R0 <https://wg21.link/P2401R0>`__ Add a conditional ``noexcept`` specification to ``std::exchange`` 2021-10 (Virtual) |Complete| 14.0
40
41 `P0323R12 <https://wg21.link/P0323R12>`__ ``std::expected`` 2022-02 (Virtual) |Complete| 16.0
42 `P0533R9 <https://wg21.link/P0533R9>`__ ``constexpr`` for ``<cmath>`` and ``<cstdlib>`` 2022-02 (Virtual) |In Progress| [#note-P0533R9]_ |In Progress| ``isfinite``, ``isinf``, ``isnan`` and ``isnormal`` are implemented
43 `P0627R6 <https://wg21.link/P0627R6>`__ Function to mark unreachable code 2022-02 (Virtual) |Complete| 15.0
44 `P1206R7 <https://wg21.link/P1206R7>`__ ``ranges::to``: A function to convert any range to a container 2022-02 (Virtual) |Complete| 17.0 |ranges|
45 `P1413R3 <https://wg21.link/P1413R3>`__ Deprecate ``std::aligned_storage`` and ``std::aligned_union`` 2022-02 (Virtual) |Complete| [#note-P1413R3]_ |Complete| ``std::aligned_storage_t`` and ``std::aligned_union_t`` are marked deprecated, but clang doesn't issue a diagnostic for deprecated using template declarations.
46 `P2255R2 <https://wg21.link/P2255R2>`__ A type trait to detect reference binding to temporary 2022-02 (Virtual)
47 `P2273R3 <https://wg21.link/P2273R3>`__ Making ``std::unique_ptr`` constexpr 2022-02 (Virtual) |Complete| 16.0
48 `P2387R3 <https://wg21.link/P2387R3>`__ Pipe support for user-defined range adaptors 2022-02 (Virtual) |Complete| 19.0 |ranges|
49 `P2440R1 <https://wg21.link/P2440R1>`__ ``ranges::iota``, ``ranges::shift_left`` and ``ranges::shift_right`` 2022-02 (Virtual) |ranges|
50 `P2441R2 <https://wg21.link/P2441R2>`__ ``views::join_with`` 2022-02 (Virtual) |In Progress| |ranges|
51 `P2442R1 <https://wg21.link/P2442R1>`__ Windowing range adaptors: ``views::chunk`` and ``views::slide`` 2022-02 (Virtual) |ranges|
52 `P2443R1 <https://wg21.link/P2443R1>`__ ``views::chunk_by`` 2022-02 (Virtual) |Complete| 18.0 |ranges|
53
54 `P0009R18 <https://wg21.link/P0009R18>`__ mdspan: A Non-Owning Multidimensional Array Reference 2022-07 (Virtual) |Complete| 18.0
55 `P0429R9 <https://wg21.link/P0429R9>`__ A Standard ``flat_map`` 2022-07 (Virtual)
56 `P1169R4 <https://wg21.link/P1169R4>`__ ``static operator()`` 2022-07 (Virtual) |Complete| 16.0
57 `P1222R4 <https://wg21.link/P1222R4>`__ A Standard ``flat_set`` 2022-07 (Virtual)
58 `P1223R5 <https://wg21.link/P1223R5>`__ ``ranges::find_last()``, ``ranges::find_last_if()``, and ``ranges::find_last_if_not()`` 2022-07 (Virtual) |Complete| 19.0 |ranges|
59 `P1467R9 <https://wg21.link/P1467R9>`__ Extended ``floating-point`` types and standard names 2022-07 (Virtual)
60 `P1642R11 <https://wg21.link/P1642R11>`__ Freestanding ``[utilities]``, ``[ranges]``, and ``[iterators]`` 2022-07 (Virtual)
61 `P1899R3 <https://wg21.link/P1899R3>`__ ``stride_view`` 2022-07 (Virtual) |ranges|
62 `P2093R14 <https://wg21.link/P2093R14>`__ Formatted output 2022-07 (Virtual) |Complete| 18.0 |format|
63 `P2165R4 <https://wg21.link/P2165R4>`__ Compatibility between ``tuple``, ``pair`` and ``tuple-like`` objects 2022-07 (Virtual)
64 `P2278R4 <https://wg21.link/P2278R4>`__ ``cbegin`` should always return a constant iterator 2022-07 (Virtual) |ranges|
65 `P2286R8 <https://wg21.link/P2286R8>`__ Formatting Ranges 2022-07 (Virtual) |Complete| 16.0 |format| |ranges|
66 `P2291R3 <https://wg21.link/P2291R3>`__ Add Constexpr Modifiers to Functions ``to_chars`` and ``from_chars`` for Integral Types in ``<charconv>`` Header 2022-07 (Virtual) |Complete| 16.0
67 `P2302R4 <https://wg21.link/P2302R4>`__ ``std::ranges::contains`` 2022-07 (Virtual) |Complete| 19.0 |ranges|
68 `P2322R6 <https://wg21.link/P2322R6>`__ ``ranges::fold`` 2022-07 (Virtual) |ranges|
69 `P2374R4 <https://wg21.link/P2374R4>`__ ``views::cartesian_product`` 2022-07 (Virtual) |ranges|
70 `P2404R3 <https://wg21.link/P2404R3>`__ Move-only types for ``equality_comparable_with``, ``totally_ordered_with``, and ``three_way_comparable_with`` 2022-07 (Virtual)
71 `P2408R5 <https://wg21.link/P2408R5>`__ Ranges iterators as inputs to non-Ranges algorithms 2022-07 (Virtual) |ranges|
72 `P2417R2 <https://wg21.link/P2417R2>`__ A more ``constexpr`` ``bitset`` 2022-07 (Virtual) |Complete| 16.0
73 `P2419R2 <https://wg21.link/P2419R2>`__ Clarify handling of encodings in localized formatting of chrono types 2022-07 (Virtual)
74 `P2438R2 <https://wg21.link/P2438R2>`__ ``std::string::substr() &&`` 2022-07 (Virtual) |Complete| 16.0
75 `P2445R1 <https://wg21.link/P2445R1>`__ ``forward_like`` 2022-07 (Virtual) |Complete| 16.0
76 `P2446R2 <https://wg21.link/P2446R2>`__ ``views::as_rvalue`` 2022-07 (Virtual) |Complete| 16.0 |ranges|
77 `P2460R2 <https://wg21.link/P2460R2>`__ Relax requirements on ``wchar_t`` to match existing practices 2022-07 (Virtual) |Nothing To Do|
78 `P2465R3 <https://wg21.link/P2465R3>`__ Standard Library Modules ``std`` and ``std.compat`` 2022-07 (Virtual) |Complete| 19.0
79 `P2467R1 <https://wg21.link/P2467R1>`__ Support exclusive mode for ``fstreams`` 2022-07 (Virtual) |Complete| 18.0
80 `P2474R2 <https://wg21.link/P2474R2>`__ ``views::repeat`` 2022-07 (Virtual) |Complete| 17.0 |ranges|
81 `P2494R2 <https://wg21.link/P2494R2>`__ Relaxing range adaptors to allow for move only types 2022-07 (Virtual) |Complete| 17.0 |ranges|
82 `P2499R0 <https://wg21.link/P2499R0>`__ ``string_view`` range constructor should be ``explicit`` 2022-07 (Virtual) |Complete| 16.0 |ranges|
83 `P2502R2 <https://wg21.link/P2502R2>`__ ``std::generator``: Synchronous Coroutine Generator for Ranges 2022-07 (Virtual) |ranges|
84 `P2508R1 <https://wg21.link/P2508R1>`__ Exposing ``std::basic-format-string`` 2022-07 (Virtual) |Complete| 15.0
85 `P2513R4 <https://wg21.link/P2513R4>`__ ``char8_t`` Compatibility and Portability Fixes 2022-07 (Virtual)
86 `P2517R1 <https://wg21.link/P2517R1>`__ Add a conditional ``noexcept`` specification to ``std::apply`` 2022-07 (Virtual) |Complete| 3.9
87 `P2520R0 <https://wg21.link/P2520R0>`__ ``move_iterator`` should be a random access iterator 2022-07 (Virtual) |Complete| [#note-P2520R0]_ |Complete| 17.0 |ranges| Implemented as a DR in C++20
88 `P2540R1 <https://wg21.link/P2540R1>`__ Empty Product for certain Views 2022-07 (Virtual) |ranges|
89 `P2549R1 <https://wg21.link/P2549R1>`__ ``std::unexpected`` should have ``error()`` as member accessor 2022-07 (Virtual) |Complete| 16.0
90 `P2585R0 <https://wg21.link/P2585R0>`__ Improving default container formatting 2022-07 (Virtual) |Complete| 17.0
91 `P2590R2 <https://wg21.link/P2590R2>`__ Explicit lifetime management 2022-07 (Virtual)
93 `P2604R0 <https://wg21.link/P2604R0>`__ mdspan: rename pointer and contiguous 2022-07 (Virtual) |Complete| 18.0
94 `P2613R1 <https://wg21.link/P2613R1>`__ Add the missing ``empty`` to ``mdspan`` 2022-07 (Virtual) |Complete| 18.0
95
96 `P1202R5 <https://wg21.link/P1202R5>`__ Asymmetric Fences 2022-11 (Kona) |concurrency TS|
97 `P1264R2 <https://wg21.link/P1264R2>`__ Revising the wording of ``stream`` input operations 2022-11 (Kona) |Complete| 9.0
98 `P1478R8 <https://wg21.link/P1478R8>`__ ``Byte-wise`` ``atomic`` ``memcpy`` 2022-11 (Kona) |concurrency TS|
99 `P2167R3 <https://wg21.link/P2167R3>`__ Improved Proposed Wording for LWG 2114 2022-11 (Kona)
100 `P2396R1 <https://wg21.link/P2396R1>`__ Concurrency TS 2 fixes 2022-11 (Kona) |concurrency TS|
101 `P2505R5 <https://wg21.link/P2505R5>`__ Monadic Functions for ``std::expected`` 2022-11 (Kona) |Complete| 17.0
102 `P2539R4 <https://wg21.link/P2539R4>`__ Should the output of ``std::print`` to a terminal be synchronized with the underlying stream? 2022-11 (Kona) |Complete| 18.0 |format|
103 `P2602R2 <https://wg21.link/P2602R2>`__ Poison Pills are Too Toxic 2022-11 (Kona) |Complete| 19.0 |ranges|
104 `P2708R1 <https://wg21.link/P2708R1>`__ No Further Fundamentals TSes 2022-11 (Kona) |Nothing To Do|
105
106 `P0290R4 <https://wg21.link/P0290R4>`__ ``apply()`` for ``synchronized_value<T>`` 2023-02 (Issaquah) |concurrency TS|
107 `P2770R0 <https://wg21.link/P2770R0>`__ Stashing stashing ``iterators`` for proper flattening 2023-02 (Issaquah) |Partial| [#note-P2770R0]_ |Partial| |ranges| ``join_with_view`` hasn't been done yet since this type isn't implemented yet
108 `P2164R9 <https://wg21.link/P2164R9>`__ ``views::enumerate`` 2023-02 (Issaquah) |ranges|
109 `P2711R1 <https://wg21.link/P2711R1>`__ Making multi-param constructors of ``views`` ``explicit`` 2023-02 (Issaquah) |In Progress| [#note-P2711R1]_ |In Progress| |ranges| ``join_with_view`` hasn't been done yet since this type isn't implemented yet
110 `P2609R3 <https://wg21.link/P2609R3>`__ Relaxing Ranges Just A Smidge 2023-02 (Issaquah) |Complete| [#note-P2609R3]_ |Complete| 20.0 |ranges| Implemented as a DR in C++20. Other implementations will do the same.
111 `P2713R1 <https://wg21.link/P2713R1>`__ Escaping improvements in ``std::format`` 2023-02 (Issaquah) |Complete| 19.0 |format|
112 `P2675R1 <https://wg21.link/P2675R1>`__ ``format``'s width estimation is too approximate and not forward compatible 2023-02 (Issaquah) |Complete| 17.0 |format|
113 `P2572R1 <https://wg21.link/P2572R1>`__ ``std::format`` fill character allowances 2023-02 (Issaquah) |Complete| 17.0 |format|
114 `P2693R1 <https://wg21.link/P2693R1>`__ Formatting ``thread::id`` and ``stacktrace`` 2023-02 (Issaquah) |Partial| [#note-P2693R1]_ |Partial| |format| The formatter for ``stacktrace`` is not implemented, since ``stacktrace`` is not implemented yet
115 `P2679R2 <https://wg21.link/P2679R2>`__ Fixing ``std::start_lifetime_as`` for arrays 2023-02 (Issaquah)
116 `P2674R1 <https://wg21.link/P2674R1>`__ A trait for implicit lifetime types 2023-02 (Issaquah)
117 `P2655R3 <https://wg21.link/P2655R3>`__ ``common_reference_t`` of ``reference_wrapper`` Should Be a Reference Type 2023-02 (Issaquah)
120 `P2614R2 <https://wg21.link/P2614R2>`__ Deprecate ``numeric_limits::has_denorm`` 2023-02 (Issaquah) |Complete| 18.0
121 `P2588R3 <https://wg21.link/P2588R3>`__ ``barrier``’s phase completion guarantees 2023-02 (Issaquah)
122 `P2763R1 <https://wg21.link/P2763R1>`__ ``layout_stride`` static extents default constructor fix 2023-02 (Issaquah)
123 `P2736R2 <https://wg21.link/P2736R2>`__ Referencing The Unicode Standard 2023-02 (Issaquah) |Complete| 19.0 |format|

View File

@ -27,8 +27,6 @@ The groups that have contributed papers:
.. note:: "Nothing to do" means that no library changes were needed to implement this change.
.. _paper-status-cxx2c:
Paper Status
====================================
@ -37,16 +35,6 @@ Paper Status
:header-rows: 1
:widths: auto
.. note::
.. [#note-P2510R3] This paper is applied as DR against C++20. (MSVC STL and libstdc++ will do the same.)
.. [#note-P3142R0] This paper is applied as DR against C++23. (MSVC STL and libstdc++ will do the same.)
.. [#note-P2944R3] Implemented comparisons for ``reference_wrapper`` only.
.. [#note-P2422R1] Libc++ keeps the ``nodiscard`` attributes as a conforming extension.
.. [#note-P2997R1] This paper is applied as DR against C++20. (MSVC STL and libstdc++ will do the same.)
.. _issues-status-cxx2c:
Library Working Group Issues Status
====================================

View File

@ -1,17 +1,17 @@
"Issue #","Issue Name","Meeting","Status","First released version","Labels"
"Issue #","Issue Name","Meeting","Status","First released version","Notes"
"`LWG2994 <https://wg21.link/LWG2994>`__","Needless UB for ``basic_string`` and ``basic_string_view``","2023-06 (Varna)","|Complete|","5.0",""
"`LWG3884 <https://wg21.link/LWG3884>`__","``flat_foo`` is missing allocator-extended copy/move constructors","2023-06 (Varna)","","","|flat_containers|"
"`LWG3884 <https://wg21.link/LWG3884>`__","``flat_foo`` is missing allocator-extended copy/move constructors","2023-06 (Varna)","","",""
"`LWG3885 <https://wg21.link/LWG3885>`__","``op`` should be in [zombie.names]","2023-06 (Varna)","|Nothing To Do|","",""
"`LWG3887 <https://wg21.link/LWG3887>`__","Version macro for ``allocate_at_least``","2023-06 (Varna)","|Complete|","19.0",""
"`LWG3893 <https://wg21.link/LWG3893>`__","LWG 3661 broke ``atomic<shared_ptr<T>> a; a = nullptr;``","2023-06 (Varna)","","",""
"`LWG3894 <https://wg21.link/LWG3894>`__","``generator::promise_type::yield_value(ranges::elements_of<Rng, Alloc>)`` should not be ``noexcept``","2023-06 (Varna)","","",""
"`LWG3903 <https://wg21.link/LWG3903>`__","span destructor is redundantly noexcept","2023-06 (Varna)","|Complete|","7.0",""
"`LWG3904 <https://wg21.link/LWG3904>`__","``lazy_split_view::outer-iterator``'s const-converting constructor isn't setting ``trailing_empty_``","2023-06 (Varna)","","","|ranges|"
"`LWG3904 <https://wg21.link/LWG3904>`__","``lazy_split_view::outer-iterator``'s const-converting constructor isn't setting ``trailing_empty_``","2023-06 (Varna)","","",""
"`LWG3905 <https://wg21.link/LWG3905>`__","Type of ``std::fexcept_t``","2023-06 (Varna)","|Complete|","3.4",""
"`LWG3912 <https://wg21.link/LWG3912>`__","``enumerate_view::iterator::operator-`` should be ``noexcept``","2023-06 (Varna)","","","|ranges|"
"`LWG3914 <https://wg21.link/LWG3914>`__","Inconsistent template-head of ``ranges::enumerate_view``","2023-06 (Varna)","","","|ranges|"
"`LWG3915 <https://wg21.link/LWG3915>`__","Redundant paragraph about expression variations","2023-06 (Varna)","","","|ranges|"
"`LWG3925 <https://wg21.link/LWG3925>`__","Concept ``formattable``'s definition is incorrect","2023-06 (Varna)","|Complete|","17.0","|format|"
"`LWG3912 <https://wg21.link/LWG3912>`__","``enumerate_view::iterator::operator-`` should be ``noexcept``","2023-06 (Varna)","","",""
"`LWG3914 <https://wg21.link/LWG3914>`__","Inconsistent template-head of ``ranges::enumerate_view``","2023-06 (Varna)","","",""
"`LWG3915 <https://wg21.link/LWG3915>`__","Redundant paragraph about expression variations","2023-06 (Varna)","","",""
"`LWG3925 <https://wg21.link/LWG3925>`__","Concept ``formattable``'s definition is incorrect","2023-06 (Varna)","|Complete|","17.0",""
"`LWG3927 <https://wg21.link/LWG3927>`__","Unclear preconditions for ``operator[]`` for sequence containers","2023-06 (Varna)","|Nothing To Do|","",""
"`LWG3935 <https://wg21.link/LWG3935>`__","``template<class X> constexpr complex& operator=(const complex<X>&)`` has no specification","2023-06 (Varna)","|Complete|","3.4",""
"`LWG3938 <https://wg21.link/LWG3938>`__","Cannot use ``std::expected`` monadic ops with move-only ``error_type``","2023-06 (Varna)","|Complete|","18.0",""
@ -23,58 +23,58 @@
"`LWG3431 <https://wg21.link/LWG3431>`__","``<=>`` for containers should require ``three_way_comparable<T>`` instead of ``<=>``","2023-11 (Kona)","","",""
"`LWG3749 <https://wg21.link/LWG3749>`__","``common_iterator`` should handle integer-class difference types","2023-11 (Kona)","","",""
"`LWG3809 <https://wg21.link/LWG3809>`__","Is ``std::subtract_with_carry_engine<uint16_t>`` supposed to work","2023-11 (Kona)","","",""
"`LWG3892 <https://wg21.link/LWG3892>`__","Incorrect formatting of nested ranges and tuples","2023-11 (Kona)","|Complete|","17.0","|format|"
"`LWG3892 <https://wg21.link/LWG3892>`__","Incorrect formatting of nested ranges and tuples","2023-11 (Kona)","|Complete|","17.0",""
"`LWG3897 <https://wg21.link/LWG3897>`__","``inout_ptr`` will not update raw pointer to 0","2023-11 (Kona)","|Complete|","19.0",""
"`LWG3946 <https://wg21.link/LWG3946>`__","The definition of ``const_iterator_t`` should be reworked","2023-11 (Kona)","","",""
"`LWG3947 <https://wg21.link/LWG3947>`__","Unexpected constraints on ``adjacent_transform_view::base()``","2023-11 (Kona)","","","|ranges|"
"`LWG3948 <https://wg21.link/LWG3948>`__","``possibly-const-range and as-const-pointer`` should be ``noexcept``","2023-11 (Kona)","","","|ranges|"
"`LWG3947 <https://wg21.link/LWG3947>`__","Unexpected constraints on ``adjacent_transform_view::base()``","2023-11 (Kona)","","",""
"`LWG3948 <https://wg21.link/LWG3948>`__","``possibly-const-range and as-const-pointer`` should be ``noexcept``","2023-11 (Kona)","","",""
"`LWG3949 <https://wg21.link/LWG3949>`__","``std::atomic<bool>``'s trivial destructor dropped in C++17 spec wording","2023-11 (Kona)","","",""
"`LWG3951 <https://wg21.link/LWG3951>`__","[expected.object.swap]: Using ``value()`` instead of ``has_value()``","2023-11 (Kona)","|Complete|","16.0",""
"`LWG3953 <https://wg21.link/LWG3953>`__","``iter_move`` for ``common_iterator`` and ``counted_iterator`` should return ``decltype(auto)``","2023-11 (Kona)","","","|ranges|"
"`LWG3953 <https://wg21.link/LWG3953>`__","``iter_move`` for ``common_iterator`` and ``counted_iterator`` should return ``decltype(auto)``","2023-11 (Kona)","","",""
"`LWG3957 <https://wg21.link/LWG3957>`__","[container.alloc.reqmts] The value category of v should be claimed","2023-11 (Kona)","","",""
"`LWG3965 <https://wg21.link/LWG3965>`__","Incorrect example in [format.string.escaped] p3 for formatting of combining characters","2023-11 (Kona)","|Complete|","19.0","|format|"
"`LWG3965 <https://wg21.link/LWG3965>`__","Incorrect example in [format.string.escaped] p3 for formatting of combining characters","2023-11 (Kona)","|Complete|","19.0",""
"`LWG3970 <https://wg21.link/LWG3970>`__","[mdspan.syn] Missing definition of ``full_extent_t`` and ``full_extent``","2023-11 (Kona)","","",""
"`LWG3973 <https://wg21.link/LWG3973>`__","Monadic operations should be ADL-proof","2023-11 (Kona)","","",""
"`LWG3974 <https://wg21.link/LWG3974>`__","``mdspan::operator[]`` should not copy ``OtherIndexTypes``","2023-11 (Kona)","","",""
"`LWG3987 <https://wg21.link/LWG3987>`__","Including ``<flat_foo>`` doesn't provide ``std::begin``/``end``","2023-11 (Kona)","","","|flat_containers|"
"`LWG3987 <https://wg21.link/LWG3987>`__","Including ``<flat_foo>`` doesn't provide ``std::begin``/``end``","2023-11 (Kona)","","",""
"`LWG3990 <https://wg21.link/LWG3990>`__","Program-defined specializations of ``std::tuple`` and ``std::variant`` can't be properly supported","2023-11 (Kona)","","",""
"`LWG4001 <https://wg21.link/LWG4001>`__","``iota_view`` should provide ``empty``","2023-11 (Kona)","|Complete|","19.0","|ranges|"
"`LWG4001 <https://wg21.link/LWG4001>`__","``iota_view`` should provide ``empty``","2023-11 (Kona)","|Complete|","19.0",""
"","","","","",""
"`LWG3767 <https://wg21.link/LWG3767>`__","``codecvt<charN_t, char8_t, mbstate_t>`` incorrectly added to locale","2024-03 (Tokyo)","","",""
"`LWG3919 <https://wg21.link/LWG3919>`__","``enumerate_view`` may invoke UB for sized common non-forward underlying ranges","2024-03 (Tokyo)","","","|ranges|"
"`LWG3919 <https://wg21.link/LWG3919>`__","``enumerate_view`` may invoke UB for sized common non-forward underlying ranges","2024-03 (Tokyo)","","",""
"`LWG3950 <https://wg21.link/LWG3950>`__","``std::basic_string_view`` comparison operators are overspecified","2024-03 (Tokyo)","|Complete|","18.0",""
"`LWG3975 <https://wg21.link/LWG3975>`__","Specializations of ``basic_format_context`` should not be permitted","2024-03 (Tokyo)","|Nothing To Do|","","|format|"
"`LWG3984 <https://wg21.link/LWG3984>`__","``ranges::to``'s recursion branch may be ill-formed","2024-03 (Tokyo)","|Complete|","19.0","|ranges|"
"`LWG3975 <https://wg21.link/LWG3975>`__","Specializations of ``basic_format_context`` should not be permitted","2024-03 (Tokyo)","|Nothing To Do|","",""
"`LWG3984 <https://wg21.link/LWG3984>`__","``ranges::to``'s recursion branch may be ill-formed","2024-03 (Tokyo)","|Complete|","19.0",""
"`LWG4011 <https://wg21.link/LWG4011>`__","``""Effects: Equivalent to return""`` in ``[span.elem]``","2024-03 (Tokyo)","|Nothing To Do|","",""
"`LWG4012 <https://wg21.link/LWG4012>`__","``common_view::begin/end`` are missing the ``simple-view`` check","2024-03 (Tokyo)","","","|ranges|"
"`LWG4013 <https://wg21.link/LWG4013>`__","``lazy_split_view::outer-iterator::value_type`` should not provide default constructor","2024-03 (Tokyo)","","","|ranges|"
"`LWG4012 <https://wg21.link/LWG4012>`__","``common_view::begin/end`` are missing the ``simple-view`` check","2024-03 (Tokyo)","","",""
"`LWG4013 <https://wg21.link/LWG4013>`__","``lazy_split_view::outer-iterator::value_type`` should not provide default constructor","2024-03 (Tokyo)","","",""
"`LWG4016 <https://wg21.link/LWG4016>`__","container-insertable checks do not match what container-inserter does","2024-03 (Tokyo)","","",""
"`LWG4023 <https://wg21.link/LWG4023>`__","Preconditions of ``std::basic_streambuf::setg/setp``","2024-03 (Tokyo)","|Complete|","19.0",""
"`LWG4025 <https://wg21.link/LWG4025>`__","Move assignment operator of ``std::expected<cv void, E>`` should not be conditionally deleted","2024-03 (Tokyo)","","",""
"`LWG4030 <https://wg21.link/LWG4030>`__","Clarify whether arithmetic expressions in ``[numeric.sat.func]`` are mathematical or C++","2024-03 (Tokyo)","|Nothing To Do|","",""
"`LWG4031 <https://wg21.link/LWG4031>`__","``bad_expected_access<void>`` member functions should be ``noexcept``","2024-03 (Tokyo)","|Complete|","16.0",""
"`LWG4035 <https://wg21.link/LWG4035>`__","``single_view`` should provide ``empty``","2024-03 (Tokyo)","|Complete|","19.0","|ranges|"
"`LWG4035 <https://wg21.link/LWG4035>`__","``single_view`` should provide ``empty``","2024-03 (Tokyo)","|Complete|","19.0",""
"`LWG4036 <https://wg21.link/LWG4036>`__","``__alignof_is_defined`` is only implicitly specified in C++ and not yet deprecated","2024-03 (Tokyo)","","",""
"`LWG4037 <https://wg21.link/LWG4037>`__","Static data members of ``ctype_base`` are not yet required to be usable in constant expressions","2024-03 (Tokyo)","","",""
"`LWG4038 <https://wg21.link/LWG4038>`__","``std::text_encoding::aliases_view`` should have constexpr iterators","2024-03 (Tokyo)","","",""
"`LWG4043 <https://wg21.link/LWG4043>`__","""ASCII"" is not a registered character encoding","2024-03 (Tokyo)","|Nothing To Do|","",""
"`LWG4045 <https://wg21.link/LWG4045>`__","``tuple`` can create dangling references from ``tuple-like``","2024-03 (Tokyo)","","",""
"`LWG4053 <https://wg21.link/LWG4053>`__","Unary call to ``std::views::repeat`` does not decay the argument","2024-03 (Tokyo)","|Complete|","19.0","|ranges|"
"`LWG4054 <https://wg21.link/LWG4054>`__","Repeating a ``repeat_view`` should repeat the view","2024-03 (Tokyo)","|Complete|","19.0","|ranges|"
"`LWG4053 <https://wg21.link/LWG4053>`__","Unary call to ``std::views::repeat`` does not decay the argument","2024-03 (Tokyo)","|Complete|","19.0",""
"`LWG4054 <https://wg21.link/LWG4054>`__","Repeating a ``repeat_view`` should repeat the view","2024-03 (Tokyo)","|Complete|","19.0",""
"","","","","",""
"`LWG3944 <https://wg21.link/LWG3944>`__","Formatters converting sequences of ``char`` to sequences of ``wchar_t``","2024-06 (St. Louis)","","","|format|"
"`LWG3944 <https://wg21.link/LWG3944>`__","Formatters converting sequences of ``char`` to sequences of ``wchar_t``","2024-06 (St. Louis)","","",""
"`LWG4060 <https://wg21.link/LWG4060>`__","``submdspan`` preconditions do not forbid creating invalid pointer","2024-06 (St. Louis)","","",""
"`LWG4061 <https://wg21.link/LWG4061>`__","Should ``std::basic_format_context`` be default-constructible/copyable/movable?","2024-06 (St. Louis)","|Complete|","19.0","|format|"
"`LWG4061 <https://wg21.link/LWG4061>`__","Should ``std::basic_format_context`` be default-constructible/copyable/movable?","2024-06 (St. Louis)","|Complete|","19.0",""
"`LWG4071 <https://wg21.link/LWG4071>`__","``reference_wrapper`` comparisons are not SFINAE-friendly","2024-06 (St. Louis)","|Complete|","19.0",""
"`LWG4074 <https://wg21.link/LWG4074>`__","``compatible-joinable-ranges`` is underconstrained","2024-06 (St. Louis)","","","|ranges|"
"`LWG4074 <https://wg21.link/LWG4074>`__","``compatible-joinable-ranges`` is underconstrained","2024-06 (St. Louis)","","",""
"`LWG4076 <https://wg21.link/LWG4076>`__","``concat_view`` should be freestanding","2024-06 (St. Louis)","","",""
"`LWG4079 <https://wg21.link/LWG4079>`__","Missing Preconditions in ``concat_view::iterator``\`s conversion constructor","2024-06 (St. Louis)","","","|ranges|"
"`LWG4082 <https://wg21.link/LWG4082>`__","``views::concat(r)`` is well-formed when ``r`` is an ``output_range``","2024-06 (St. Louis)","","","|ranges|"
"`LWG4083 <https://wg21.link/LWG4083>`__","``views::as_rvalue`` should reject non-input ranges","2024-06 (St. Louis)","","","|ranges|"
"`LWG4096 <https://wg21.link/LWG4096>`__","``views::iota(views::iota(0))`` should be rejected","2024-06 (St. Louis)","","","|ranges|"
"`LWG4098 <https://wg21.link/LWG4098>`__","``views::adjacent<0>`` should reject non-forward ranges","2024-06 (St. Louis)","","","|ranges|"
"`LWG4105 <https://wg21.link/LWG4105>`__","``ranges::ends_with``\`s Returns misses difference casting","2024-06 (St. Louis)","","","|ranges|"
"`LWG4106 <https://wg21.link/LWG4106>`__","``basic_format_args`` should not be default-constructible","2024-06 (St. Louis)","|Complete|","19.0","|format|"
"`LWG4079 <https://wg21.link/LWG4079>`__","Missing Preconditions in ``concat_view::iterator``\`s conversion constructor","2024-06 (St. Louis)","","",""
"`LWG4082 <https://wg21.link/LWG4082>`__","``views::concat(r)`` is well-formed when ``r`` is an ``output_range``","2024-06 (St. Louis)","","",""
"`LWG4083 <https://wg21.link/LWG4083>`__","``views::as_rvalue`` should reject non-input ranges","2024-06 (St. Louis)","","",""
"`LWG4096 <https://wg21.link/LWG4096>`__","``views::iota(views::iota(0))`` should be rejected","2024-06 (St. Louis)","","",""
"`LWG4098 <https://wg21.link/LWG4098>`__","``views::adjacent<0>`` should reject non-forward ranges","2024-06 (St. Louis)","","",""
"`LWG4105 <https://wg21.link/LWG4105>`__","``ranges::ends_with``\`s Returns misses difference casting","2024-06 (St. Louis)","","",""
"`LWG4106 <https://wg21.link/LWG4106>`__","``basic_format_args`` should not be default-constructible","2024-06 (St. Louis)","|Complete|","19.0",""
"","","","","",""
"`LWG3343 <https://wg21.link/LWG3343>`__","Ordering of calls to ``unlock()`` and ``notify_all()`` in Effects element of ``notify_all_at_thread_exit()`` should be reversed","Not Adopted Yet","|Complete|","16.0",""
"`LWG4139 <https://wg21.link/LWG4139>`__","§[time.zone.leap] recursive constraint in <=>","Not Adopted Yet","|Complete|","20.0",""

1 Issue # Issue Name Meeting Status First released version Labels Notes
2 `LWG2994 <https://wg21.link/LWG2994>`__ Needless UB for ``basic_string`` and ``basic_string_view`` 2023-06 (Varna) |Complete| 5.0
3 `LWG3884 <https://wg21.link/LWG3884>`__ ``flat_foo`` is missing allocator-extended copy/move constructors 2023-06 (Varna) |flat_containers|
4 `LWG3885 <https://wg21.link/LWG3885>`__ ``op`` should be in [zombie.names] 2023-06 (Varna) |Nothing To Do|
5 `LWG3887 <https://wg21.link/LWG3887>`__ Version macro for ``allocate_at_least`` 2023-06 (Varna) |Complete| 19.0
6 `LWG3893 <https://wg21.link/LWG3893>`__ LWG 3661 broke ``atomic<shared_ptr<T>> a; a = nullptr;`` 2023-06 (Varna)
7 `LWG3894 <https://wg21.link/LWG3894>`__ ``generator::promise_type::yield_value(ranges::elements_of<Rng, Alloc>)`` should not be ``noexcept`` 2023-06 (Varna)
8 `LWG3903 <https://wg21.link/LWG3903>`__ span destructor is redundantly noexcept 2023-06 (Varna) |Complete| 7.0
9 `LWG3904 <https://wg21.link/LWG3904>`__ ``lazy_split_view::outer-iterator``'s const-converting constructor isn't setting ``trailing_empty_`` 2023-06 (Varna) |ranges|
10 `LWG3905 <https://wg21.link/LWG3905>`__ Type of ``std::fexcept_t`` 2023-06 (Varna) |Complete| 3.4
11 `LWG3912 <https://wg21.link/LWG3912>`__ ``enumerate_view::iterator::operator-`` should be ``noexcept`` 2023-06 (Varna) |ranges|
12 `LWG3914 <https://wg21.link/LWG3914>`__ Inconsistent template-head of ``ranges::enumerate_view`` 2023-06 (Varna) |ranges|
13 `LWG3915 <https://wg21.link/LWG3915>`__ Redundant paragraph about expression variations 2023-06 (Varna) |ranges|
14 `LWG3925 <https://wg21.link/LWG3925>`__ Concept ``formattable``'s definition is incorrect 2023-06 (Varna) |Complete| 17.0 |format|
15 `LWG3927 <https://wg21.link/LWG3927>`__ Unclear preconditions for ``operator[]`` for sequence containers 2023-06 (Varna) |Nothing To Do|
16 `LWG3935 <https://wg21.link/LWG3935>`__ ``template<class X> constexpr complex& operator=(const complex<X>&)`` has no specification 2023-06 (Varna) |Complete| 3.4
17 `LWG3938 <https://wg21.link/LWG3938>`__ Cannot use ``std::expected`` monadic ops with move-only ``error_type`` 2023-06 (Varna) |Complete| 18.0
23 `LWG3431 <https://wg21.link/LWG3431>`__ ``<=>`` for containers should require ``three_way_comparable<T>`` instead of ``<=>`` 2023-11 (Kona)
24 `LWG3749 <https://wg21.link/LWG3749>`__ ``common_iterator`` should handle integer-class difference types 2023-11 (Kona)
25 `LWG3809 <https://wg21.link/LWG3809>`__ Is ``std::subtract_with_carry_engine<uint16_t>`` supposed to work 2023-11 (Kona)
26 `LWG3892 <https://wg21.link/LWG3892>`__ Incorrect formatting of nested ranges and tuples 2023-11 (Kona) |Complete| 17.0 |format|
27 `LWG3897 <https://wg21.link/LWG3897>`__ ``inout_ptr`` will not update raw pointer to 0 2023-11 (Kona) |Complete| 19.0
28 `LWG3946 <https://wg21.link/LWG3946>`__ The definition of ``const_iterator_t`` should be reworked 2023-11 (Kona)
29 `LWG3947 <https://wg21.link/LWG3947>`__ Unexpected constraints on ``adjacent_transform_view::base()`` 2023-11 (Kona) |ranges|
30 `LWG3948 <https://wg21.link/LWG3948>`__ ``possibly-const-range and as-const-pointer`` should be ``noexcept`` 2023-11 (Kona) |ranges|
31 `LWG3949 <https://wg21.link/LWG3949>`__ ``std::atomic<bool>``'s trivial destructor dropped in C++17 spec wording 2023-11 (Kona)
32 `LWG3951 <https://wg21.link/LWG3951>`__ [expected.object.swap]: Using ``value()`` instead of ``has_value()`` 2023-11 (Kona) |Complete| 16.0
33 `LWG3953 <https://wg21.link/LWG3953>`__ ``iter_move`` for ``common_iterator`` and ``counted_iterator`` should return ``decltype(auto)`` 2023-11 (Kona) |ranges|
34 `LWG3957 <https://wg21.link/LWG3957>`__ [container.alloc.reqmts] The value category of v should be claimed 2023-11 (Kona)
35 `LWG3965 <https://wg21.link/LWG3965>`__ Incorrect example in [format.string.escaped] p3 for formatting of combining characters 2023-11 (Kona) |Complete| 19.0 |format|
36 `LWG3970 <https://wg21.link/LWG3970>`__ [mdspan.syn] Missing definition of ``full_extent_t`` and ``full_extent`` 2023-11 (Kona)
37 `LWG3973 <https://wg21.link/LWG3973>`__ Monadic operations should be ADL-proof 2023-11 (Kona)
38 `LWG3974 <https://wg21.link/LWG3974>`__ ``mdspan::operator[]`` should not copy ``OtherIndexTypes`` 2023-11 (Kona)
39 `LWG3987 <https://wg21.link/LWG3987>`__ Including ``<flat_foo>`` doesn't provide ``std::begin``/``end`` 2023-11 (Kona) |flat_containers|
40 `LWG3990 <https://wg21.link/LWG3990>`__ Program-defined specializations of ``std::tuple`` and ``std::variant`` can't be properly supported 2023-11 (Kona)
41 `LWG4001 <https://wg21.link/LWG4001>`__ ``iota_view`` should provide ``empty`` 2023-11 (Kona) |Complete| 19.0 |ranges|
42
43 `LWG3767 <https://wg21.link/LWG3767>`__ ``codecvt<charN_t, char8_t, mbstate_t>`` incorrectly added to locale 2024-03 (Tokyo)
44 `LWG3919 <https://wg21.link/LWG3919>`__ ``enumerate_view`` may invoke UB for sized common non-forward underlying ranges 2024-03 (Tokyo) |ranges|
45 `LWG3950 <https://wg21.link/LWG3950>`__ ``std::basic_string_view`` comparison operators are overspecified 2024-03 (Tokyo) |Complete| 18.0
46 `LWG3975 <https://wg21.link/LWG3975>`__ Specializations of ``basic_format_context`` should not be permitted 2024-03 (Tokyo) |Nothing To Do| |format|
47 `LWG3984 <https://wg21.link/LWG3984>`__ ``ranges::to``'s recursion branch may be ill-formed 2024-03 (Tokyo) |Complete| 19.0 |ranges|
48 `LWG4011 <https://wg21.link/LWG4011>`__ ``"Effects: Equivalent to return"`` in ``[span.elem]`` 2024-03 (Tokyo) |Nothing To Do|
49 `LWG4012 <https://wg21.link/LWG4012>`__ ``common_view::begin/end`` are missing the ``simple-view`` check 2024-03 (Tokyo) |ranges|
50 `LWG4013 <https://wg21.link/LWG4013>`__ ``lazy_split_view::outer-iterator::value_type`` should not provide default constructor 2024-03 (Tokyo) |ranges|
51 `LWG4016 <https://wg21.link/LWG4016>`__ container-insertable checks do not match what container-inserter does 2024-03 (Tokyo)
52 `LWG4023 <https://wg21.link/LWG4023>`__ Preconditions of ``std::basic_streambuf::setg/setp`` 2024-03 (Tokyo) |Complete| 19.0
53 `LWG4025 <https://wg21.link/LWG4025>`__ Move assignment operator of ``std::expected<cv void, E>`` should not be conditionally deleted 2024-03 (Tokyo)
54 `LWG4030 <https://wg21.link/LWG4030>`__ Clarify whether arithmetic expressions in ``[numeric.sat.func]`` are mathematical or C++ 2024-03 (Tokyo) |Nothing To Do|
55 `LWG4031 <https://wg21.link/LWG4031>`__ ``bad_expected_access<void>`` member functions should be ``noexcept`` 2024-03 (Tokyo) |Complete| 16.0
56 `LWG4035 <https://wg21.link/LWG4035>`__ ``single_view`` should provide ``empty`` 2024-03 (Tokyo) |Complete| 19.0 |ranges|
57 `LWG4036 <https://wg21.link/LWG4036>`__ ``__alignof_is_defined`` is only implicitly specified in C++ and not yet deprecated 2024-03 (Tokyo)
58 `LWG4037 <https://wg21.link/LWG4037>`__ Static data members of ``ctype_base`` are not yet required to be usable in constant expressions 2024-03 (Tokyo)
59 `LWG4038 <https://wg21.link/LWG4038>`__ ``std::text_encoding::aliases_view`` should have constexpr iterators 2024-03 (Tokyo)
60 `LWG4043 <https://wg21.link/LWG4043>`__ "ASCII" is not a registered character encoding 2024-03 (Tokyo) |Nothing To Do|
61 `LWG4045 <https://wg21.link/LWG4045>`__ ``tuple`` can create dangling references from ``tuple-like`` 2024-03 (Tokyo)
62 `LWG4053 <https://wg21.link/LWG4053>`__ Unary call to ``std::views::repeat`` does not decay the argument 2024-03 (Tokyo) |Complete| 19.0 |ranges|
63 `LWG4054 <https://wg21.link/LWG4054>`__ Repeating a ``repeat_view`` should repeat the view 2024-03 (Tokyo) |Complete| 19.0 |ranges|
64
65 `LWG3944 <https://wg21.link/LWG3944>`__ Formatters converting sequences of ``char`` to sequences of ``wchar_t`` 2024-06 (St. Louis) |format|
66 `LWG4060 <https://wg21.link/LWG4060>`__ ``submdspan`` preconditions do not forbid creating invalid pointer 2024-06 (St. Louis)
67 `LWG4061 <https://wg21.link/LWG4061>`__ Should ``std::basic_format_context`` be default-constructible/copyable/movable? 2024-06 (St. Louis) |Complete| 19.0 |format|
68 `LWG4071 <https://wg21.link/LWG4071>`__ ``reference_wrapper`` comparisons are not SFINAE-friendly 2024-06 (St. Louis) |Complete| 19.0
69 `LWG4074 <https://wg21.link/LWG4074>`__ ``compatible-joinable-ranges`` is underconstrained 2024-06 (St. Louis) |ranges|
70 `LWG4076 <https://wg21.link/LWG4076>`__ ``concat_view`` should be freestanding 2024-06 (St. Louis)
71 `LWG4079 <https://wg21.link/LWG4079>`__ Missing Preconditions in ``concat_view::iterator``\`s conversion constructor 2024-06 (St. Louis) |ranges|
72 `LWG4082 <https://wg21.link/LWG4082>`__ ``views::concat(r)`` is well-formed when ``r`` is an ``output_range`` 2024-06 (St. Louis) |ranges|
73 `LWG4083 <https://wg21.link/LWG4083>`__ ``views::as_rvalue`` should reject non-input ranges 2024-06 (St. Louis) |ranges|
74 `LWG4096 <https://wg21.link/LWG4096>`__ ``views::iota(views::iota(0))`` should be rejected 2024-06 (St. Louis) |ranges|
75 `LWG4098 <https://wg21.link/LWG4098>`__ ``views::adjacent<0>`` should reject non-forward ranges 2024-06 (St. Louis) |ranges|
76 `LWG4105 <https://wg21.link/LWG4105>`__ ``ranges::ends_with``\`s Returns misses difference casting 2024-06 (St. Louis) |ranges|
77 `LWG4106 <https://wg21.link/LWG4106>`__ ``basic_format_args`` should not be default-constructible 2024-06 (St. Louis) |Complete| 19.0 |format|
78
79 `LWG3343 <https://wg21.link/LWG3343>`__ Ordering of calls to ``unlock()`` and ``notify_all()`` in Effects element of ``notify_all_at_thread_exit()`` should be reversed Not Adopted Yet |Complete| 16.0
80 `LWG4139 <https://wg21.link/LWG4139>`__ §[time.zone.leap] recursive constraint in <=> Not Adopted Yet |Complete| 20.0

View File

@ -1,13 +1,13 @@
"Paper #","Paper Name","Meeting","Status","First released version","Labels"
"Paper #","Paper Name","Meeting","Status","First released version","Notes"
"`P2497R0 <https://wg21.link/P2497R0>`__","Testing for success or failure of ``<charconv>`` functions","2023-06 (Varna)","|Complete|","18.0",""
"`P2592R3 <https://wg21.link/P2592R3>`__","Hashing support for ``std::chrono`` value classes","2023-06 (Varna)","","",""
"`P2587R3 <https://wg21.link/P2587R3>`__","``to_string`` or not ``to_string``","2023-06 (Varna)","","","|format|"
"`P2587R3 <https://wg21.link/P2587R3>`__","``to_string`` or not ``to_string``","2023-06 (Varna)","","",""
"`P2562R1 <https://wg21.link/P2562R1>`__","``constexpr`` Stable Sorting","2023-06 (Varna)","","",""
"`P2545R4 <https://wg21.link/P2545R4>`__","Read-Copy Update (RCU)","2023-06 (Varna)","","",""
"`P2530R3 <https://wg21.link/P2530R3>`__","Hazard Pointers for C++26","2023-06 (Varna)","","",""
"`P2538R1 <https://wg21.link/P2538R1>`__","ADL-proof ``std::projected``","2023-06 (Varna)","|Complete|","18.0","|ranges|"
"`P2538R1 <https://wg21.link/P2538R1>`__","ADL-proof ``std::projected``","2023-06 (Varna)","|Complete|","18.0",""
"`P2495R3 <https://wg21.link/P2495R3>`__","Interfacing ``stringstream``\s with ``string_view``","2023-06 (Varna)","|Complete|","19.0",""
"`P2510R3 <https://wg21.link/P2510R3>`__","Formatting pointers","2023-06 (Varna)","|Complete| [#note-P2510R3]_","17.0","|format|"
"`P2510R3 <https://wg21.link/P2510R3>`__","Formatting pointers","2023-06 (Varna)","|Complete|","17.0","Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.)"
"`P2198R7 <https://wg21.link/P2198R7>`__","Freestanding Feature-Test Macros and Implementation-Defined Extensions","2023-06 (Varna)","","",""
"`P2338R4 <https://wg21.link/P2338R4>`__","Freestanding Library: Character primitives and the C library","2023-06 (Varna)","","",""
"`P2013R5 <https://wg21.link/P2013R5>`__","Freestanding Language: Optional ``::operator new``","2023-06 (Varna)","","",""
@ -16,7 +16,7 @@
"`P1885R12 <https://wg21.link/P1885R12>`__","Naming Text Encodings to Demystify Them","2023-06 (Varna)","","",""
"`P0792R14 <https://wg21.link/P0792R14>`__","``function_ref``: a type-erased callable reference","2023-06 (Varna)","","",""
"`P2874R2 <https://wg21.link/P2874R2>`__","Mandating Annex D Require No More","2023-06 (Varna)","","",""
"`P2757R3 <https://wg21.link/P2757R3>`__","Type-checking format args","2023-06 (Varna)","","","|format|"
"`P2757R3 <https://wg21.link/P2757R3>`__","Type-checking format args","2023-06 (Varna)","","",""
"`P2637R3 <https://wg21.link/P2637R3>`__","Member ``visit``","2023-06 (Varna)","|Complete|","19.0",""
"`P2641R4 <https://wg21.link/P2641R4>`__","Checking if a ``union`` alternative is active","2023-06 (Varna)","","",""
"`P1759R6 <https://wg21.link/P1759R6>`__","Native handles and file streams","2023-06 (Varna)","|Complete|","18.0",""
@ -30,9 +30,9 @@
"`P0543R3 <https://wg21.link/P0543R3>`__","Saturation arithmetic","2023-11 (Kona)","|Complete|","18.0",""
"`P2407R5 <https://wg21.link/P2407R5>`__","Freestanding Library: Partial Classes","2023-11 (Kona)","","",""
"`P2546R5 <https://wg21.link/P2546R5>`__","Debugging Support","2023-11 (Kona)","","",""
"`P2905R2 <https://wg21.link/P2905R2>`__","Runtime format strings","2023-11 (Kona)","|Complete|","18.0","|format| |DR|"
"`P2918R2 <https://wg21.link/P2918R2>`__","Runtime format strings II","2023-11 (Kona)","|Complete|","18.0","|format|"
"`P2909R4 <https://wg21.link/P2909R4>`__","Fix formatting of code units as integers (Dude, wheres my ``char``?)","2023-11 (Kona)","|Complete|","18.0","|format| |DR|"
"`P2905R2 <https://wg21.link/P2905R2>`__","Runtime format strings","2023-11 (Kona)","|Complete|","18.0",""
"`P2918R2 <https://wg21.link/P2918R2>`__","Runtime format strings II","2023-11 (Kona)","|Complete|","18.0",""
"`P2909R4 <https://wg21.link/P2909R4>`__","Fix formatting of code units as integers (Dude, wheres my ``char``?)","2023-11 (Kona)","|Complete|","18.0",""
"`P0952R2 <https://wg21.link/P0952R2>`__","A new specification for ``std::generate_canonical``","2023-11 (Kona)","","",""
"`P2447R6 <https://wg21.link/P2447R6>`__","``std::span`` over an initializer list","2023-11 (Kona)","|Complete|","18.0",""
"`P2821R5 <https://wg21.link/P2821R5>`__","``span.at()``","2023-11 (Kona)","|Complete|","18.0",""
@ -42,7 +42,7 @@
"`P2819R2 <https://wg21.link/P2819R2>`__","Add tuple protocol to complex","2023-11 (Kona)","|Complete|","19.0",""
"`P2937R0 <https://wg21.link/P2937R0>`__","Freestanding: Remove ``strtok``","2023-11 (Kona)","","",""
"`P2833R2 <https://wg21.link/P2833R2>`__","Freestanding Library: inout expected span","2023-11 (Kona)","","",""
"`P2836R1 <https://wg21.link/P2836R1>`__","``std::basic_const_iterator`` should follow its underlying type's convertibility","2023-11 (Kona)","","","|DR|"
"`P2836R1 <https://wg21.link/P2836R1>`__","``std::basic_const_iterator`` should follow its underlying type's convertibility","2023-11 (Kona)","","",""
"`P2264R7 <https://wg21.link/P2264R7>`__","Make ``assert()`` macro user friendly for C and C++","2023-11 (Kona)","","",""
"`P1673R13 <https://wg21.link/P1673R13>`__","A free function linear algebra interface based on the BLAS","2023-11 (Kona)","","",""
"","","","","",""
@ -50,29 +50,29 @@
"`P2867R2 <https://wg21.link/P2867R2>`__","Remove Deprecated ``strstreams`` From C++26","2024-03 (Tokyo)","|Complete|","19.0",""
"`P2869R4 <https://wg21.link/P2869R4>`__","Remove Deprecated ``shared_ptr`` Atomic Access APIs from C++26","2024-03 (Tokyo)","","",""
"`P2872R3 <https://wg21.link/P2872R3>`__","Remove ``wstring_convert`` From C++26","2024-03 (Tokyo)","|Complete|","19.0",""
"`P3107R5 <https://wg21.link/P3107R5>`__","Permit an efficient implementation of ``std::print``","2024-03 (Tokyo)","","","|format| |DR|"
"`P3142R0 <https://wg21.link/P3142R0>`__","Printing Blank Lines with ``println``","2024-03 (Tokyo)","|Complete| [#note-P3142R0]_","19.0","|format|"
"`P2845R8 <https://wg21.link/P2845R8>`__","Formatting of ``std::filesystem::path``","2024-03 (Tokyo)","","","|format|"
"`P3107R5 <https://wg21.link/P3107R5>`__","Permit an efficient implementation of ``std::print``","2024-03 (Tokyo)","","",""
"`P3142R0 <https://wg21.link/P3142R0>`__","Printing Blank Lines with ``println``","2024-03 (Tokyo)","|Complete|","19.0","Implemented as a DR against C++23. (MSVC STL and libstdc++ will do the same.)"
"`P2845R8 <https://wg21.link/P2845R8>`__","Formatting of ``std::filesystem::path``","2024-03 (Tokyo)","","",""
"`P0493R5 <https://wg21.link/P0493R5>`__","Atomic minimum/maximum","2024-03 (Tokyo)","","",""
"`P2542R8 <https://wg21.link/P2542R8>`__","``views::concat``","2024-03 (Tokyo)","","","|ranges|"
"`P2542R8 <https://wg21.link/P2542R8>`__","``views::concat``","2024-03 (Tokyo)","","",""
"`P2591R5 <https://wg21.link/P2591R5>`__","Concatenation of strings and string views","2024-03 (Tokyo)","|Complete|","19.0",""
"`P2248R8 <https://wg21.link/P2248R8>`__","Enabling list-initialization for algorithms","2024-03 (Tokyo)","","",""
"`P2810R4 <https://wg21.link/P2810R4>`__","``is_debugger_present`` ``is_replaceable``","2024-03 (Tokyo)","","",""
"`P1068R11 <https://wg21.link/P1068R11>`__","Vector API for random number generation","2024-03 (Tokyo)","","",""
"`P2944R3 <https://wg21.link/P2944R3>`__","Comparisons for ``reference_wrapper``","2024-03 (Tokyo)","|Partial| [#note-P2944R3]_","19.0",""
"`P2944R3 <https://wg21.link/P2944R3>`__","Comparisons for ``reference_wrapper``","2024-03 (Tokyo)","|Partial|","19.0","Implemented comparisons for ``reference_wrapper`` only"
"`P2642R6 <https://wg21.link/P2642R6>`__","Padded ``mdspan`` layouts","2024-03 (Tokyo)","","",""
"`P3029R1 <https://wg21.link/P3029R1>`__","Better ``mdspan``'s CTAD","2024-03 (Tokyo)","|Complete|","19.0",""
"","","","","",""
"`P2747R2 <https://wg21.link/P2747R2>`__","``constexpr`` placement new","2024-06 (St. Louis)","|Complete|","20.0",""
"`P2997R1 <https://wg21.link/P2997R1>`__","Removing the common reference requirement from the indirectly invocable concepts","2024-06 (St. Louis)","|Complete| [#note-P2997R1]_","19.0",""
"`P2997R1 <https://wg21.link/P2997R1>`__","Removing the common reference requirement from the indirectly invocable concepts","2024-06 (St. Louis)","|Complete|","19.0","Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.)"
"`P2389R2 <https://wg21.link/P2389R2>`__","``dextents`` Index Type Parameter","2024-06 (St. Louis)","|Complete|","19.0",""
"`P3168R2 <https://wg21.link/P3168R2>`__","Give ``std::optional`` Range Support","2024-06 (St. Louis)","","","|ranges|"
"`P3168R2 <https://wg21.link/P3168R2>`__","Give ``std::optional`` Range Support","2024-06 (St. Louis)","","",""
"`P3217R0 <https://wg21.link/P3217R0>`__","Adjoints to 'Enabling list-initialization for algorithms': find_last","2024-06 (St. Louis)","","",""
"`P2985R0 <https://wg21.link/P2985R0>`__","A type trait for detecting virtual base classes","2024-06 (St. Louis)","|Complete|","20.0",""
"`P0843R14 <https://wg21.link/P0843R14>`__","``inplace_vector``","2024-06 (St. Louis)","","",""
"`P3235R3 <https://wg21.link/P3235R3>`__","``std::print`` more types faster with less memory","2024-06 (St. Louis)","","","|format| |DR|"
"`P3235R3 <https://wg21.link/P3235R3>`__","``std::print`` more types faster with less memory","2024-06 (St. Louis)","","",""
"`P2968R2 <https://wg21.link/P2968R2>`__","Make ``std::ignore`` a first-class object","2024-06 (St. Louis)","|Complete|","19.0",""
"`P2075R6 <https://wg21.link/P2075R6>`__","Philox as an extension of the C++ RNG engines","2024-06 (St. Louis)","","",""
"`P2422R1 <https://wg21.link/P2422R1>`__","Remove ``nodiscard`` annotations from the standard library specification","2024-06 (St. Louis)","|Complete| [#note-P2422R1]_","19.0",""
"`P2422R1 <https://wg21.link/P2422R1>`__","Remove ``nodiscard`` annotations from the standard library specification","2024-06 (St. Louis)","|Complete|","19.0","``nodiscard`` attributes were kept as a conforming extension"
"`P2300R10 <https://wg21.link/P2300R10>`__","``std::execution``","2024-06 (St. Louis)","","",""
"","","","","",""

1 Paper # Paper Name Meeting Status First released version Labels Notes
2 `P2497R0 <https://wg21.link/P2497R0>`__ Testing for success or failure of ``<charconv>`` functions 2023-06 (Varna) |Complete| 18.0
3 `P2592R3 <https://wg21.link/P2592R3>`__ Hashing support for ``std::chrono`` value classes 2023-06 (Varna)
4 `P2587R3 <https://wg21.link/P2587R3>`__ ``to_string`` or not ``to_string`` 2023-06 (Varna) |format|
5 `P2562R1 <https://wg21.link/P2562R1>`__ ``constexpr`` Stable Sorting 2023-06 (Varna)
6 `P2545R4 <https://wg21.link/P2545R4>`__ Read-Copy Update (RCU) 2023-06 (Varna)
7 `P2530R3 <https://wg21.link/P2530R3>`__ Hazard Pointers for C++26 2023-06 (Varna)
8 `P2538R1 <https://wg21.link/P2538R1>`__ ADL-proof ``std::projected`` 2023-06 (Varna) |Complete| 18.0 |ranges|
9 `P2495R3 <https://wg21.link/P2495R3>`__ Interfacing ``stringstream``\s with ``string_view`` 2023-06 (Varna) |Complete| 19.0
10 `P2510R3 <https://wg21.link/P2510R3>`__ Formatting pointers 2023-06 (Varna) |Complete| [#note-P2510R3]_ |Complete| 17.0 |format| Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.)
11 `P2198R7 <https://wg21.link/P2198R7>`__ Freestanding Feature-Test Macros and Implementation-Defined Extensions 2023-06 (Varna)
12 `P2338R4 <https://wg21.link/P2338R4>`__ Freestanding Library: Character primitives and the C library 2023-06 (Varna)
13 `P2013R5 <https://wg21.link/P2013R5>`__ Freestanding Language: Optional ``::operator new`` 2023-06 (Varna)
16 `P1885R12 <https://wg21.link/P1885R12>`__ Naming Text Encodings to Demystify Them 2023-06 (Varna)
17 `P0792R14 <https://wg21.link/P0792R14>`__ ``function_ref``: a type-erased callable reference 2023-06 (Varna)
18 `P2874R2 <https://wg21.link/P2874R2>`__ Mandating Annex D Require No More 2023-06 (Varna)
19 `P2757R3 <https://wg21.link/P2757R3>`__ Type-checking format args 2023-06 (Varna) |format|
20 `P2637R3 <https://wg21.link/P2637R3>`__ Member ``visit`` 2023-06 (Varna) |Complete| 19.0
21 `P2641R4 <https://wg21.link/P2641R4>`__ Checking if a ``union`` alternative is active 2023-06 (Varna)
22 `P1759R6 <https://wg21.link/P1759R6>`__ Native handles and file streams 2023-06 (Varna) |Complete| 18.0
30 `P0543R3 <https://wg21.link/P0543R3>`__ Saturation arithmetic 2023-11 (Kona) |Complete| 18.0
31 `P2407R5 <https://wg21.link/P2407R5>`__ Freestanding Library: Partial Classes 2023-11 (Kona)
32 `P2546R5 <https://wg21.link/P2546R5>`__ Debugging Support 2023-11 (Kona)
33 `P2905R2 <https://wg21.link/P2905R2>`__ Runtime format strings 2023-11 (Kona) |Complete| 18.0 |format| |DR|
34 `P2918R2 <https://wg21.link/P2918R2>`__ Runtime format strings II 2023-11 (Kona) |Complete| 18.0 |format|
35 `P2909R4 <https://wg21.link/P2909R4>`__ Fix formatting of code units as integers (Dude, where’s my ``char``?) 2023-11 (Kona) |Complete| 18.0 |format| |DR|
36 `P0952R2 <https://wg21.link/P0952R2>`__ A new specification for ``std::generate_canonical`` 2023-11 (Kona)
37 `P2447R6 <https://wg21.link/P2447R6>`__ ``std::span`` over an initializer list 2023-11 (Kona) |Complete| 18.0
38 `P2821R5 <https://wg21.link/P2821R5>`__ ``span.at()`` 2023-11 (Kona) |Complete| 18.0
42 `P2819R2 <https://wg21.link/P2819R2>`__ Add tuple protocol to complex 2023-11 (Kona) |Complete| 19.0
43 `P2937R0 <https://wg21.link/P2937R0>`__ Freestanding: Remove ``strtok`` 2023-11 (Kona)
44 `P2833R2 <https://wg21.link/P2833R2>`__ Freestanding Library: inout expected span 2023-11 (Kona)
45 `P2836R1 <https://wg21.link/P2836R1>`__ ``std::basic_const_iterator`` should follow its underlying type's convertibility 2023-11 (Kona) |DR|
46 `P2264R7 <https://wg21.link/P2264R7>`__ Make ``assert()`` macro user friendly for C and C++ 2023-11 (Kona)
47 `P1673R13 <https://wg21.link/P1673R13>`__ A free function linear algebra interface based on the BLAS 2023-11 (Kona)
48
50 `P2867R2 <https://wg21.link/P2867R2>`__ Remove Deprecated ``strstreams`` From C++26 2024-03 (Tokyo) |Complete| 19.0
51 `P2869R4 <https://wg21.link/P2869R4>`__ Remove Deprecated ``shared_ptr`` Atomic Access APIs from C++26 2024-03 (Tokyo)
52 `P2872R3 <https://wg21.link/P2872R3>`__ Remove ``wstring_convert`` From C++26 2024-03 (Tokyo) |Complete| 19.0
53 `P3107R5 <https://wg21.link/P3107R5>`__ Permit an efficient implementation of ``std::print`` 2024-03 (Tokyo) |format| |DR|
54 `P3142R0 <https://wg21.link/P3142R0>`__ Printing Blank Lines with ``println`` 2024-03 (Tokyo) |Complete| [#note-P3142R0]_ |Complete| 19.0 |format| Implemented as a DR against C++23. (MSVC STL and libstdc++ will do the same.)
55 `P2845R8 <https://wg21.link/P2845R8>`__ Formatting of ``std::filesystem::path`` 2024-03 (Tokyo) |format|
56 `P0493R5 <https://wg21.link/P0493R5>`__ Atomic minimum/maximum 2024-03 (Tokyo)
57 `P2542R8 <https://wg21.link/P2542R8>`__ ``views::concat`` 2024-03 (Tokyo) |ranges|
58 `P2591R5 <https://wg21.link/P2591R5>`__ Concatenation of strings and string views 2024-03 (Tokyo) |Complete| 19.0
59 `P2248R8 <https://wg21.link/P2248R8>`__ Enabling list-initialization for algorithms 2024-03 (Tokyo)
60 `P2810R4 <https://wg21.link/P2810R4>`__ ``is_debugger_present`` ``is_replaceable`` 2024-03 (Tokyo)
61 `P1068R11 <https://wg21.link/P1068R11>`__ Vector API for random number generation 2024-03 (Tokyo)
62 `P2944R3 <https://wg21.link/P2944R3>`__ Comparisons for ``reference_wrapper`` 2024-03 (Tokyo) |Partial| [#note-P2944R3]_ |Partial| 19.0 Implemented comparisons for ``reference_wrapper`` only
63 `P2642R6 <https://wg21.link/P2642R6>`__ Padded ``mdspan`` layouts 2024-03 (Tokyo)
64 `P3029R1 <https://wg21.link/P3029R1>`__ Better ``mdspan``'s CTAD 2024-03 (Tokyo) |Complete| 19.0
65
66 `P2747R2 <https://wg21.link/P2747R2>`__ ``constexpr`` placement new 2024-06 (St. Louis) |Complete| 20.0
67 `P2997R1 <https://wg21.link/P2997R1>`__ Removing the common reference requirement from the indirectly invocable concepts 2024-06 (St. Louis) |Complete| [#note-P2997R1]_ |Complete| 19.0 Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.)
68 `P2389R2 <https://wg21.link/P2389R2>`__ ``dextents`` Index Type Parameter 2024-06 (St. Louis) |Complete| 19.0
69 `P3168R2 <https://wg21.link/P3168R2>`__ Give ``std::optional`` Range Support 2024-06 (St. Louis) |ranges|
70 `P3217R0 <https://wg21.link/P3217R0>`__ Adjoints to 'Enabling list-initialization for algorithms': find_last 2024-06 (St. Louis)
71 `P2985R0 <https://wg21.link/P2985R0>`__ A type trait for detecting virtual base classes 2024-06 (St. Louis) |Complete| 20.0
72 `P0843R14 <https://wg21.link/P0843R14>`__ ``inplace_vector`` 2024-06 (St. Louis)
73 `P3235R3 <https://wg21.link/P3235R3>`__ ``std::print`` more types faster with less memory 2024-06 (St. Louis) |format| |DR|
74 `P2968R2 <https://wg21.link/P2968R2>`__ Make ``std::ignore`` a first-class object 2024-06 (St. Louis) |Complete| 19.0
75 `P2075R6 <https://wg21.link/P2075R6>`__ Philox as an extension of the C++ RNG engines 2024-06 (St. Louis)
76 `P2422R1 <https://wg21.link/P2422R1>`__ Remove ``nodiscard`` annotations from the standard library specification 2024-06 (St. Louis) |Complete| [#note-P2422R1]_ |Complete| 19.0 ``nodiscard`` attributes were kept as a conforming extension
77 `P2300R10 <https://wg21.link/P2300R10>`__ ``std::execution`` 2024-06 (St. Louis)
78

View File

@ -8,6 +8,7 @@
# ===----------------------------------------------------------------------===##
from typing import List, Dict, Tuple, Optional
import copy
import csv
import itertools
import json
@ -19,6 +20,25 @@ import subprocess
# Number of the 'Libc++ Standards Conformance' project on Github
LIBCXX_CONFORMANCE_PROJECT = '31'
def extract_between_markers(text: str, begin_marker: str, end_marker: str) -> Optional[str]:
"""
Given a string containing special markers, extract everything located beetwen these markers.
If the beginning marker is not found, None is returned. If the beginning marker is found but
there is no end marker, it is an error (this is done to avoid silently accepting inputs that
are erroneous by mistake).
"""
start = text.find(begin_marker)
if start == -1:
return None
start += len(begin_marker) # skip the marker itself
end = text.find(end_marker, start)
if end == -1:
raise ArgumentError(f"Could not find end marker {end_marker} in: {text[start:]}")
return text[start:end]
class PaperStatus:
TODO = 1
IN_PROGRESS = 2
@ -60,19 +80,16 @@ class PaperStatus:
- '|Partial|'
- '|Complete|'
- '|Nothing To Do|'
Note that since we sometimes add additional notes after the status, we only check that the entry
starts with the above patterns.
"""
if entry == '':
return PaperStatus(PaperStatus.TODO, entry)
elif entry.startswith('|In Progress|'):
elif entry == '|In Progress|':
return PaperStatus(PaperStatus.IN_PROGRESS, entry)
elif entry.startswith('|Partial|'):
elif entry == '|Partial|':
return PaperStatus(PaperStatus.PARTIAL, entry)
elif entry.startswith('|Complete|'):
elif entry == '|Complete|':
return PaperStatus(PaperStatus.DONE, entry)
elif entry.startswith('|Nothing To Do|'):
elif entry == '|Nothing To Do|':
return PaperStatus(PaperStatus.NOTHING_TO_DO, entry)
else:
raise RuntimeError(f'Unexpected CSV entry for status: {entry}')
@ -140,10 +157,10 @@ class PaperInfo:
First version of LLVM in which this paper/issue was resolved.
"""
labels: Optional[List[str]]
notes: Optional[str]
"""
List of labels to associate to the issue in the status-tracking table. Supported labels are
'format', 'ranges', 'spaceship', 'flat_containers', 'concurrency TS' and 'DR'.
Optional plain text string representing notes to associate to the paper.
This is used to populate the "Notes" column in the CSV status pages.
"""
original: Optional[object]
@ -156,14 +173,14 @@ class PaperInfo:
status: PaperStatus,
meeting: Optional[str] = None,
first_released_version: Optional[str] = None,
labels: Optional[List[str]] = None,
notes: Optional[str] = None,
original: Optional[object] = None):
self.paper_number = paper_number
self.paper_name = paper_name
self.status = status
self.meeting = meeting
self.first_released_version = first_released_version
self.labels = labels
self.notes = notes
self.original = original
def for_printing(self) -> Tuple[str, str, str, str, str, str]:
@ -173,7 +190,7 @@ class PaperInfo:
self.meeting if self.meeting is not None else '',
self.status.to_csv_entry(),
self.first_released_version if self.first_released_version is not None else '',
' '.join(f'|{label}|' for label in self.labels) if self.labels is not None else '',
self.notes if self.notes is not None else '',
)
def __repr__(self) -> str:
@ -195,7 +212,7 @@ class PaperInfo:
status=PaperStatus.from_csv_entry(row[3]),
meeting=row[2] or None,
first_released_version=row[4] or None,
labels=[l.strip('|') for l in row[5].split(' ') if l] or None,
notes=row[5] or None,
original=row,
)
@ -210,9 +227,10 @@ class PaperInfo:
raise RuntimeError(f"Issue doesn't have a title that we know how to parse: {issue}")
paper = match.group(1)
# Handle labels
valid_labels = ('format', 'ranges', 'spaceship', 'flat_containers', 'concurrency TS', 'DR')
labels = [label for label in issue['labels'] if label in valid_labels]
# Extract any notes from the Github issue and populate the RST notes with them
issue_description = issue['content']['body']
notes = extract_between_markers(issue_description, 'BEGIN-RST-NOTES', 'END-RST-NOTES')
notes = notes.strip() if notes is not None else notes
return PaperInfo(
paper_number=paper,
@ -220,10 +238,34 @@ class PaperInfo:
status=PaperStatus.from_github_issue(issue),
meeting=issue.get('meeting Voted', None),
first_released_version=None, # TODO
labels=labels if labels else None,
notes=notes,
original=issue,
)
def merge(paper: PaperInfo, gh: PaperInfo) -> PaperInfo:
"""
Merge a paper coming from a CSV row with a corresponding Github-tracked paper.
If the CSV row has a status that is "less advanced" than the Github issue, simply update the CSV
row with the newer status. Otherwise, report an error if they have a different status because
something must be wrong.
In case we don't update the CSV row's status, we still take any updated notes coming
from the Github issue.
"""
if paper.status < gh.status:
return gh
elif paper.status != gh.status:
print(f"We found a CSV row and a Github issue with different statuses:\nrow: {paper}\nGithub issue: {gh}")
return paper
else:
# Retain the notes from the Github issue, if any
if gh.notes is not None:
cp = copy.deepcopy(paper)
cp.notes = gh.notes
return cp
return paper
def load_csv(file: pathlib.Path) -> List[Tuple]:
rows = []
with open(file, newline='') as f:
@ -275,17 +317,7 @@ def sync_csv(rows: List[Tuple], from_github: List[PaperInfo]) -> List[Tuple]:
results.append(row)
continue
gh = tracking[0]
# If the CSV row has a status that is "less advanced" than the Github issue, simply update the CSV
# row with the newer status. Otherwise, report an error if they have a different status because
# something must be wrong.
if paper.status < gh.status:
results.append(gh.for_printing())
continue
elif paper.status != gh.status:
print(f"We found a CSV row and a Github issue with different statuses:\nrow: {row}\nGithub issue: {gh}")
results.append(row)
results.append(merge(paper, tracking[0]).for_printing())
return results