libc++ C++20 Status¶
Overview¶
In July 2017, the C++ standard committee created a draft for the next version of the C++ standard, initially known as “C++2a”. In September 2020, the C++ standard committee approved this draft, and sent it to ISO for approval as C++20.
This page shows the status of libc++; the status of clang’s support of the language features is here.
Attention
Features in unreleased drafts of the standard are subject to change.
The groups that have contributed papers:
CWG - Core Language Working group
LWG - Library working group
SG1 - Study group #1 (Concurrency working group)
Note
“Nothing to do” means that no library changes were needed to implement this change.
Paper Status¶
Paper #  | 
Group  | 
Paper Name  | 
Meeting  | 
Status  | 
First released version  | 
|---|---|---|---|---|---|
LWG  | 
Endian just Endian  | 
Toronto  | 
Complete  | 
7.0  | 
|
LWG  | 
Extending make_shared to Support Arrays  | 
Toronto  | 
Complete  | 
15.0  | 
|
LWG  | 
Floating Point Atomic  | 
Albuquerque  | 
|||
LWG  | 
C++ Synchronized Buffered Ostream  | 
Albuquerque  | 
|||
LWG  | 
Add constexpr modifiers to functions in <algorithm> and <utility> Headers  | 
Albuquerque  | 
Complete  | 
12.0  | 
|
LWG  | 
Constexpr for   | 
Albuquerque  | 
In Progress  | 
7.0  | 
|
LWG  | 
Make   | 
Albuquerque  | 
Complete  | 
||
LWG  | 
String Prefix and Suffix Checking  | 
Albuquerque  | 
Complete  | 
6.0  | 
|
LWG  | 
Transformation Trait   | 
Albuquerque  | 
Complete  | 
6.0  | 
|
LWG  | 
nodiscard in the Library  | 
Albuquerque  | 
In Progress 1  | 
7.0  | 
|
LWG  | 
de-pessimize legacy <numeric> algorithms with std::move  | 
Albuquerque  | 
Complete  | 
12.0  | 
|
LWG  | 
Utility to convert a pointer to a raw pointer  | 
Albuquerque  | 
Complete  | 
6.0  | 
|
LWG  | 
Atomic shared_ptr  | 
Albuquerque  | 
|||
CWG  | 
Deprecate POD  | 
Albuquerque  | 
Complete  | 
7.0  | 
|
CWG  | 
Library Support for the Spaceship (Comparison) Operator  | 
Albuquerque  | 
Complete  | 
||
LWG  | 
Treating Unnecessary   | 
Albuquerque  | 
Complete  | 
7.0  | 
|
LWG  | 
<span>  | 
Jacksonville  | 
Complete  | 
7.0  | 
|
LWG  | 
Extending chrono to Calendars and Time Zones  | 
Jacksonville  | 
In Progress  | 
||
LWG  | 
Thou Shalt Not Specialize   | 
Jacksonville  | 
Complete  | 
11.0  | 
|
LWG  | 
Manipulators for C++ Synchronized Buffered Ostream  | 
Jacksonville  | 
|||
LWG  | 
<version>  | 
Jacksonville  | 
Complete  | 
7.0  | 
|
LWG  | 
Comparing Unordered Containers  | 
Jacksonville  | 
Nothing To Do  | 
||
LWG  | 
Constexpr iterator requirements  | 
Jacksonville  | 
Complete  | 
12.0  | 
|
CWG  | 
Symmetry for spaceship  | 
Jacksonville  | 
|||
LWG  | 
  | 
Jacksonville  | 
Complete 3  | 
12.0  | 
|
LWG  | 
Atomic Ref  | 
Rapperswil  | 
|||
LWG  | 
Checking for Existence of an Element in Associative Containers  | 
Rapperswil  | 
Complete  | 
13.0  | 
|
LWG  | 
LWG 2511: guaranteed copy elision for piecewise construction  | 
Rapperswil  | 
Complete  | 
||
LWG  | 
Bit-casting object representations  | 
Rapperswil  | 
Complete  | 
14.0  | 
|
CWG  | 
The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange  | 
Rapperswil  | 
|||
CWG  | 
Support for contract based programming in C++  | 
Rapperswil  | 
Removed in Cologne  | 
n/a  | 
|
LWG  | 
Integral power-of-2 operations  | 
Rapperswil  | 
Complete  | 
9.0  | 
|
LWG  | 
Reviewing Deprecated Facilities of C++17 for C++20  | 
Rapperswil  | 
Partial 4  | 
||
LWG  | 
Improving the Return Value of Erase-Like Algorithms  | 
Rapperswil  | 
Complete  | 
10.0  | 
|
CWG  | 
Efficient sized delete for variable sized classes  | 
Rapperswil  | 
Complete  | 
9.0  | 
|
LWG  | 
Implicit conversion traits and utility functions  | 
Rapperswil  | 
Complete  | 
||
LWG  | 
fpos Requirements  | 
Rapperswil  | 
Complete  | 
11.0  | 
|
LWG  | 
Add shift to <algorithm>  | 
Rapperswil  | 
Complete  | 
12.0  | 
|
LWG  | 
Standard Library Specification in a Concepts and Contracts World  | 
Rapperswil  | 
Removed in Cologne  | 
n/a  | 
|
LWG  | 
Constexpr for swap and swap related functions Also resolves LWG issue 2800.  | 
Rapperswil  | 
Complete  | 
13.0  | 
|
LWG  | 
The identity metafunction  | 
Rapperswil  | 
Complete  | 
8.0  | 
|
CWG  | 
explicit(bool)  | 
Rapperswil  | 
|||
LWG  | 
Standard Library Concepts  | 
Rapperswil  | 
Complete  | 
13.0  | 
|
LWG  | 
Eradicating unnecessarily explicit default constructors from the standard library  | 
Rapperswil  | 
Complete  | 
12.0  | 
|
CWG  | 
Integrating feature-test macros into the C++ WD  | 
Rapperswil  | 
In Progress  | 
||
LWG  | 
constexpr comparison operators for std::array  | 
Rapperswil  | 
Complete  | 
8.0  | 
|
CWG  | 
Update The Reference To The Unicode Standard  | 
Rapperswil  | 
|||
CWG  | 
Consistency improvements for <=> and other comparison operators  | 
Rapperswil  | 
|||
LWG  | 
unwrap_ref_decay and unwrap_reference  | 
San Diego  | 
Complete  | 
8.0  | 
|
LWG  | 
Simplified partial function application  | 
San Diego  | 
Complete  | 
13.0  | 
|
LWG  | 
reference_wrapper for incomplete types  | 
San Diego  | 
Complete  | 
8.0  | 
|
CWG  | 
char8_t: A type for UTF-8 characters and strings  | 
San Diego  | 
In Progress  | 
||
LWG  | 
Fixing   | 
San Diego  | 
Complete  | 
8.0  | 
|
LWG  | 
Utility functions to implement uses-allocator construction  | 
San Diego  | 
|||
CWG  | 
P0595R2 std::is_constant_evaluated()  | 
San Diego  | 
Complete  | 
9.0  | 
|
LWG  | 
variant and optional should propagate copy/move triviality  | 
San Diego  | 
Complete  | 
8.0  | 
|
LWG  | 
A sane variant converting constructor  | 
San Diego  | 
Complete  | 
9.0  | 
|
LWG  | 
visit<R>: Explicit Return Type for visit  | 
San Diego  | 
Complete  | 
12.0  | 
|
LWG  | 
std::function move constructor should be noexcept  | 
San Diego  | 
Complete  | 
6.0  | 
|
LWG  | 
The One Ranges Proposal  | 
San Diego  | 
Complete  | 
15.0  | 
|
LWG  | 
P0899R1 - LWG 3016 is not a defect  | 
San Diego  | 
Nothing To Do  | 
||
LWG  | 
Heterogeneous lookup for unordered containers  | 
San Diego  | 
Complete  | 
12.0  | 
|
LWG  | 
<chrono>   | 
San Diego  | 
Complete  | 
8.0  | 
|
LWG  | 
Constexpr in std::pointer_traits  | 
San Diego  | 
Complete  | 
8.0  | 
|
LWG  | 
  | 
San Diego  | 
Complete  | 
15.0  | 
|
LWG  | 
Smart pointer creation with default initialization  | 
San Diego  | 
|||
LWG  | 
Misc constexpr bits  | 
San Diego  | 
Complete  | 
13.0  | 
|
LWG  | 
Should Span be Regular?  | 
San Diego  | 
Complete  | 
8.0  | 
|
LWG  | 
Editorial Guidance for merging P0019r8 and P0528r3  | 
San Diego  | 
|||
LWG  | 
Cleaning up Clause 20  | 
San Diego  | 
|||
LWG  | 
Make stateful allocator propagation more consistent for   | 
San Diego  | 
Complete  | 
15.0  | 
|
LWG  | 
Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20  | 
San Diego  | 
Complete  | 
8.0  | 
|
LWG  | 
Completing the Rebase of Library Fundamentals, Version 3, Working Draft  | 
San Diego  | 
|||
CWG  | 
Alternative Wording for P0907R4 Signed Integers are Two’s Complement  | 
San Diego  | 
|||
LWG  | 
Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)  | 
San Diego  | 
Complete  | 
13.0  | 
|
LWG  | 
Improving Completeness Requirements for Type Traits  | 
San Diego  | 
|||
CWG  | 
Missing feature test macros  | 
San Diego  | 
|||
LWG  | 
polymorphic_allocator<> as a vocabulary type  | 
Kona  | 
|||
LWG  | 
Making std::underlying_type SFINAE-friendly  | 
Kona  | 
Complete  | 
9.0  | 
|
LWG  | 
I Stream, You Stream, We All Stream for istream_iterator  | 
Kona  | 
|||
LWG  | 
Well-behaved interpolation for numbers and pointers  | 
Kona  | 
Complete  | 
9.0  | 
|
LWG  | 
Precalculated hash values in lookup  | 
Kona  | 
Reverted by P1661  | 
||
LWG  | 
Target Vectorization Policies from Parallelism V2 TS to C++20  | 
Kona  | 
|||
LWG  | 
Usability Enhancements for std::span  | 
Kona  | 
Complete  | 
9.0  | 
|
LWG  | 
Make create_directory() Intuitive  | 
Kona  | 
Complete  | 
12.0  | 
|
LWG  | 
Signed ssize() functions, unsigned size() functions  | 
Kona  | 
Complete  | 
9.0  | 
|
LWG  | 
Ranges Design Cleanup  | 
Kona  | 
Complete  | 
15.0  | 
|
CWG  | 
Contra CWG DR1778  | 
Kona  | 
|||
LWG  | 
Traits for [Un]bounded Arrays  | 
Kona  | 
Complete  | 
9.0  | 
|
LWG  | 
Mandating the Standard Library: Clause 16 - Language support library  | 
Kona  | 
Complete  | 
9.0  | 
|
LWG  | 
Mandating the Standard Library: Clause 18 - Diagnostics library  | 
Kona  | 
Complete  | 
9.0  | 
|
LWG  | 
Mandating the Standard Library: Clause 20 - Strings library  | 
Kona  | 
Complete  | 
9.0  | 
|
LWG  | 
Mandating the Standard Library: Clause 21 - Containers library  | 
Kona  | 
|||
LWG  | 
Mandating the Standard Library: Clause 22 - Iterators library  | 
Kona  | 
Complete  | 
9.0  | 
|
LWG  | 
to_array from LFTS with updates  | 
Cologne  | 
Complete  | 
10.0  | 
|
LWG  | 
Efficient Access to basic_stringbuf’s Buffer  | 
Cologne  | 
|||
LWG  | 
Layout-compatibility and Pointer-interconvertibility Traits  | 
Cologne  | 
|||
LWG  | 
Bit operations  | 
Cologne  | 
Complete  | 
9.0  | 
|
LWG  | 
Math Constants  | 
Cologne  | 
Complete  | 
11.0  | 
|
LWG  | 
Text Formatting  | 
Cologne  | 
Complete 2  | 
14.0  | 
|
LWG  | 
Stop Token and Joining Thread, Rev 10  | 
Cologne  | 
|||
CWG  | 
More constexpr containers  | 
Cologne  | 
Complete  | 
12.0  | 
|
LWG  | 
Making std::string constexpr  | 
Cologne  | 
Complete  | 
15.0  | 
|
LWG  | 
Making std::vector constexpr  | 
Cologne  | 
Complete  | 
15.0  | 
|
LWG  | 
Input Range Adaptors  | 
Cologne  | 
|||
LWG  | 
Constexpr INVOKE  | 
Cologne  | 
Complete  | 
12.0  | 
|
LWG  | 
The C++20 Synchronization Library  | 
Cologne  | 
Complete  | 
11.0  | 
|
LWG  | 
Movability of Single-pass Iterators  | 
Cologne  | 
Complete  | 
15.0  | 
|
LWG  | 
Adopt source_location for C++20  | 
Cologne  | 
|||
LWG  | 
Exposing a narrow contract for ceil2  | 
Cologne  | 
Complete  | 
9.0  | 
|
LWG  | 
Integration of chrono with text formatting  | 
Cologne  | 
|||
LWG  | 
char8_t backward compatibility remediation  | 
Cologne  | 
Complete  | 
15.0  | 
|
LWG  | 
‘constexpr’ feature macro concerns  | 
Cologne  | 
Superseded by P1902  | 
||
LWG  | 
Miscellaneous minor fixes for chrono  | 
Cologne  | 
|||
LWG  | 
Helpful pointers for ContiguousIterator  | 
Cologne  | 
Complete  | 
15.0  | 
|
LWG  | 
Standard library header units for C++20  | 
Cologne  | 
|||
LWG  | 
Iterator Difference Type and Integer Overflow  | 
Cologne  | 
Complete  | 
15.0  | 
|
LWG  | 
Views and Size Types  | 
Cologne  | 
Complete  | 
15.0  | 
|
LWG  | 
Relocate Endian’s Specification  | 
Cologne  | 
Complete  | 
10.0  | 
|
LWG  | 
The Mothership has Landed  | 
Cologne  | 
In Progress  | 
||
LWG  | 
basic_istream_view::iterator should not be copyable  | 
Cologne  | 
|||
LWG  | 
Add wait/notify to atomic_ref  | 
Cologne  | 
|||
LWG  | 
Add wait/notify to atomic<shared_ptr>  | 
Cologne  | 
|||
LWG  | 
Output std::chrono::days with ‘d’ suffix  | 
Cologne  | 
|||
LWG  | 
bind_front should not unwrap reference_wrapper  | 
Cologne  | 
Complete  | 
13.0  | 
|
LWG  | 
Printf corner cases in std::format  | 
Cologne  | 
Complete  | 
14.0  | 
|
LWG  | 
Remove dedicated precalculated hash lookup interface  | 
Cologne  | 
Nothing To Do  | 
||
LWG  | 
Rename concepts to standard_case for C++20, while we still can  | 
Cologne  | 
In Progress  | 
||
LWG  | 
Fixing Atomic Initialization  | 
Belfast  | 
14.0  | 
||
LWG  | 
Range constructor for std::string_view  | 
Belfast  | 
Complete  | 
14.0  | 
|
LWG  | 
Range constructor for std::span  | 
Belfast  | 
Complete  | 
14.0  | 
|
LWG  | 
Move-only views  | 
Belfast  | 
Complete  | 
15.0  | 
|
LWG  | 
Mandating the Standard Library: Clause 32 - Thread support library  | 
Belfast  | 
|||
LWG  | 
constexpr for numeric algorithms  | 
Belfast  | 
Complete  | 
12.0  | 
|
LWG  | 
Mandating the Standard Library: Clause 27 - Time library  | 
Belfast  | 
|||
LWG  | 
Refinement Proposal for P0919 Heterogeneous lookup for unordered containers  | 
Belfast  | 
Complete  | 
12.0  | 
|
LWG  | 
ranges compare algorithm are over-constrained  | 
Belfast  | 
Complete  | 
15.0  | 
|
LWG  | 
Mandating the Standard Library: Clause 25 - Algorithms library  | 
Belfast  | 
|||
LWG  | 
Mandating the Standard Library: Clause 26 - Numerics library  | 
Belfast  | 
|||
LWG  | 
Mandating the Standard Library: Clause 28 - Localization library  | 
Belfast  | 
|||
LWG  | 
Mandating the Standard Library: Clause 29 - Input/Output library  | 
Belfast  | 
|||
LWG  | 
Mandating the Standard Library: Clause 30 - Regular Expression library  | 
Belfast  | 
|||
LWG  | 
Mandating the Standard Library: Clause 31 - Atomics library  | 
Belfast  | 
|||
LWG  | 
Make   | 
Belfast  | 
|||
LWG  | 
Ranges adaptors for non-copyable iterators  | 
Belfast  | 
|||
LWG  | 
Add max() to latch and barrier  | 
Belfast  | 
Complete  | 
11.0  | 
|
LWG  | 
Rename ‘condition_variable_any’ interruptible wait methods  | 
Belfast  | 
|||
LWG  | 
forwarding-range is too subtle  | 
Belfast  | 
Complete  | 
15.0  | 
|
LWG  | 
Concept traits should be named after concepts  | 
Belfast  | 
Complete  | 
14.0  | 
|
LWG  | 
span should have size_type, not index_type  | 
Belfast  | 
Complete  | 
10.0  | 
|
LWG  | 
Constraining Readable Types  | 
Belfast  | 
Complete  | 
15.0  | 
|
LWG  | 
Extended locale-specific presentation specifiers for std::format  | 
Belfast  | 
Complete  | 
14.0  | 
|
LWG  | 
Missing feature-test macros 2018-2019  | 
Belfast  | 
|||
LWG  | 
Remove std::weak_equality and std::strong_equality  | 
Belfast  | 
|||
LWG  | 
NB Comment Changes Reviewed by SG1  | 
Belfast  | 
|||
LWG  | 
Harmonizing the definitions of total order for pointers  | 
Belfast  | 
|||
LWG  | 
Blanket Wording for Specifying “Hidden Friends”  | 
Belfast  | 
|||
LWG  | 
Safe integral comparisons  | 
Prague  | 
Complete  | 
13.0  | 
|
CWG  | 
Implicit creation of objects for low-level object manipulation  | 
Prague  | 
|||
LWG  | 
Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if  | 
Prague  | 
Complete  | 
11.0  | 
|
LWG  | 
Rangify New Algorithms  | 
Prague  | 
Complete  | 
15.0  | 
|
LWG  | 
Mandating the Standard Library: Clause 20 - Utilities library  | 
Prague  | 
|||
LWG  | 
Avoid template bloat for safe_ranges in combination with “subrange-y” view adaptors  | 
Prague  | 
Complete  | 
15.0  | 
|
LWG  | 
Deprecating volatile: library  | 
Prague  | 
|||
LWG  | 
width: clarifying units of width and precision in std::format  | 
Prague  | 
Complete  | 
14.0  | 
|
CWG  | 
Reserving Attribute Namespaces for Future Use  | 
Prague  | 
|||
CWG  | 
Fixing inconsistencies between constexpr and consteval functions  | 
Prague  | 
|||
LWG  | 
On the names of low-level bit manipulation functions  | 
Prague  | 
Complete  | 
12.0  | 
|
CWG  | 
Converting from   | 
Prague  | 
|||
LWG  | 
Fixing US 313  | 
Prague  | 
|||
LWG  | 
Wording for boolean-testable  | 
Prague  | 
Complete  | 
13.0  | 
|
LWG  | 
Consistency for size() functions: Add ranges::ssize  | 
Prague  | 
Complete  | 
15.0  | 
|
LWG  | 
Rename “_default_init” Functions, Rev1  | 
Prague  | 
|||
LWG  | 
Fixed-size span construction from dynamic range  | 
Prague  | 
Complete  | 
11.0  | 
|
LWG  | 
Rename leap to leap_second  | 
Prague  | 
|||
LWG  | 
Rename link to time_zone_link  | 
Prague  | 
|||
LWG  | 
Wording for GB301, US296, US292, US291, and US283  | 
Prague  | 
Complete  | 
15.0  | 
|
LWG  | 
elements_view needs its own sentinel  | 
Prague  | 
|||
CWG  | 
Defaulted comparison specification cleanups  | 
Prague  | 
|||
LWG  | 
Missing Mandates for the standard library  | 
Prague  | 
|||
CWG  | 
Consistent defaulted comparisons  | 
Prague  | 
|||
LWG  | 
Issues with range access CPOs  | 
Prague  | 
Complete  | 
15.0  | 
|
LWG  | 
‘Models’ subsumes ‘satisfies’ (Wording for US298 and US300)  | 
Prague  | 
|||
LWG  | 
Make ‘implicit expression variations’ more explicit (Wording for US185)  | 
Prague  | 
|||
LWG  | 
Alternative wording for GB315 and GB316  | 
Prague  | 
Complete  | 
15.0  | 
|
LWG  | 
Remove tuple-like protocol support from fixed-extent span  | 
Prague  | 
Complete  | 
11.0  | 
|
LWG  | 
Missing constexpr in std::optional and std::variant  | 
June 2021  | 
Partial 7  | 
13.0  | 
|
LWG  | 
Views should not be required to be default constructible  | 
June 2021  | 
In Progress  | 
||
LWG  | 
Superior String Splitting  | 
June 2021  | 
|||
LWG  | 
std::format improvements  | 
June 2021  | 
Complete  | 
15.0  | 
|
LWG  | 
Clarifying range adaptor objects  | 
June 2021  | 
Complete  | 
14.0  | 
|
LWG  | 
join_view should join all views of ranges  | 
June 2021  | 
|||
LWG  | 
Remove misuses of list-initialization from Clause 24  | 
June 2021  | 
|||
LWG  | 
Fixing locale handling in chrono formatters  | 
October 2021  | 
|||
LWG  | 
What is a   | 
October 2021  | 
Complete  | 
14.0  | 
|
LWG  | 
Add support for   | 
October 2021  | 
Complete  | 
15.0  | 
|
LWG  | 
Fix   | 
October 2021  | 
Note
- 1
 P0600: The missing bits in P0600 are in §[mem.res.class] and §[mem.poly.allocator.class].
- 2
 P0645: The paper is implemented but still marked as an incomplete feature (the feature-test macro is not set and the libary is only available when built with
-fexperimental-library). Not yet implemented LWG-issues will cause API and ABI breakage.- 3
 P0966: It was previously erroneously marked as complete in version 8.0. See bug 45368.
- 4
 P0619: Only sections D.8, D.9, D.10 and D.13 are implemented. Sections D.4, D.7, D.11, D.12, and D.14 remain undone.
- 5
 P0883: shared_ptr and floating-point changes weren’t applied as they themselves aren’t implemented yet.
- 6
 P0883:
ATOMIC_FLAG_INITwas marked deprecated in version 14.0, but was undeprecated with the implementation of LWG3659 in version 15.0.- 7
 P2231: Optional is complete. The changes to variant haven’t been implemented yet.
Library Working Group Issues Status¶
Issue #  | 
Issue Name  | 
Meeting  | 
Status  | 
First released version  | 
Labels  | 
|---|---|---|---|---|---|
  | 
Toronto  | 
Resolved by P0674R1  | 
|||
Inconsistent complexity for   | 
Toronto  | 
||||
Moved-from state of Allocators  | 
Toronto  | 
||||
  | 
Toronto  | 
||||
  | 
Toronto  | 
Complete  | 
|||
Constraints on parallel algorithm implementations are underspecified  | 
Toronto  | 
||||
Is   | 
Toronto  | 
Complete  | 
|||
  | 
Toronto  | 
Nothing To Do  | 
|||
LWG 2873’s resolution missed   | 
Toronto  | 
Complete  | 
|||
Specialization of the convenience variable templates should be prohibited  | 
Toronto  | 
Complete  | 
|||
Bad postcondition for   | 
Toronto  | 
||||
Incomplete resolution of US 74  | 
Toronto  | 
Nothing To Do  | 
|||
Diagnose out of bounds   | 
Toronto  | 
Complete  | 
|||
[networking.ts] Relax requirements on buffer sequence iterators  | 
Albuquerque  | 
||||
Default value of parameter theta of polar should be dependent  | 
Albuquerque  | 
Complete  | 
|||
What should create_directories do when p already exists but is not a directory?  | 
Albuquerque  | 
Nothing To Do  | 
|||
[thread.req.timing] wording should apply to both member and namespace-level functions  | 
Albuquerque  | 
Nothing To Do  | 
|||
LWG 2905 accidentally removed requirement that construction of the deleter doesn’t throw an exception  | 
Albuquerque  | 
Nothing To Do  | 
|||
Order of template parameters in optional comparisons  | 
Albuquerque  | 
Complete  | 
|||
unique_ptr does not define operator<< for stream output  | 
Albuquerque  | 
Complete  | 
|||
std::byte operations are misspecified  | 
Albuquerque  | 
Complete  | 
|||
iterator_traits should work for pointers to cv T  | 
Albuquerque  | 
Complete  | 
|||
LWG 2853 should apply to deque::erase too  | 
Albuquerque  | 
Complete  | 
|||
Moves improperly defined as deleted  | 
Albuquerque  | 
Complete  | 
|||
Apparently redundant requirement for dynamic_pointer_cast  | 
Albuquerque  | 
||||
Non-existing path::native_string() in filesystem_error::what() specification  | 
Albuquerque  | 
Nothing To Do  | 
|||
What is   | 
Albuquerque  | 
Complete  | 
|||
Dangling uses_allocator specialization for packaged_task  | 
Albuquerque  | 
Complete  | 
|||
unordered_meow::merge() has incorrect Throws: clause  | 
Albuquerque  | 
Nothing To Do  | 
|||
Hash support for pmr::string and friends  | 
Albuquerque  | 
||||
aligned_union should require complete object types  | 
Albuquerque  | 
Complete  | 
|||
Cannot compare_exchange empty pointers  | 
Albuquerque  | 
||||
Remove redundant deduction guides from standard library  | 
Albuquerque  | 
Nothing To Do  | 
|||
Making size_type consistent in associative container deduction guides  | 
Albuquerque  | 
||||
Clause 32 cleanup missed one typename  | 
Albuquerque  | 
Complete  | 
13.0  | 
||
reference_wrapper<T> conversion from T&&  | 
Albuquerque  | 
Complete  | 
13.0  | 
||
Requirements on function objects passed to {  | 
Albuquerque  | 
Nothing To Do  | 
|||
weak_ptr::element_type needs remove_extent_t  | 
Albuquerque  | 
Complete  | 
14.0  | 
||
variant’s copies must be deleted instead of disabled via SFINAE  | 
Albuquerque  | 
Complete  | 
|||
What are the semantics of   | 
Jacksonville  | 
Complete  | 
|||
  | 
Jacksonville  | 
Complete  | 
|||
  | 
Jacksonville  | 
Nothing To Do  | 
|||
Unclear behavior of   | 
Jacksonville  | 
Complete  | 
|||
Why does   | 
Jacksonville  | 
Nothing To Do  | 
|||
  | 
Jacksonville  | 
Nothing To Do  | 
|||
LWG 2758’s resolution missed further corrections  | 
Jacksonville  | 
Complete  | 
|||
  | 
Jacksonville  | 
Complete  | 
|||
Missing case for   | 
Jacksonville  | 
||||
  | 
Jacksonville  | 
Complete  | 
|||
  | 
Jacksonville  | 
||||
[networking.ts]   | 
Jacksonville  | 
||||
§[string.capacity] and §[vector.capacity] should specify time complexity for   | 
Jacksonville  | 
Nothing To Do  | 
|||
Destruction order of arrays by   | 
Jacksonville  | 
||||
  | 
Jacksonville  | 
||||
Including   | 
Jacksonville  | 
Complete  | 
|||
[networking.ts]   | 
Jacksonville  | 
||||
  | 
Jacksonville  | 
Complete  | 
|||
More   | 
Jacksonville  | 
Complete  | 
|||
  | 
Jacksonville  | 
Nothing To Do  | 
|||
  | 
Jacksonville  | 
Complete  | 
|||
[networking.ts] Remove spurious nested   | 
Jacksonville  | 
||||
  | 
Jacksonville  | 
Complete  | 
|||
Who shall meet the requirements of   | 
Jacksonville  | 
Nothing To Do  | 
|||
P0767R1 breaks previously-standard-layout types  | 
Jacksonville  | 
Complete  | 
|||
  | 
Jacksonville  | 
Complete  | 
|||
Unnecessary   | 
Jacksonville  | 
Complete  | 
|||
Unnecessary   | 
Jacksonville  | 
Complete  | 
|||
  | 
Jacksonville  | 
Complete  | 
|||
Bogus postcondition for   | 
Jacksonville  | 
Complete  | 
|||
  | 
Jacksonville  | 
||||
  | 
Jacksonville  | 
||||
Floating point classifications were inadvertently changed in P0175  | 
Jacksonville  | 
Nothing To Do  | 
|||
  | 
Jacksonville  | 
Complete  | 
|||
What is a user-defined type?  | 
Rapperswil  | 
||||
Return type of std::visit misspecified  | 
Rapperswil  | 
||||
Parallel adjacent_difference shouldn’t require creating temporaries  | 
Rapperswil  | 
||||
Unnecessary decay_t in is_execution_policy_v should be remove_cvref_t  | 
Rapperswil  | 
||||
recursive_directory_iterator::pop must invalidate  | 
Rapperswil  | 
Nothing To Do  | 
|||
[networking.ts] read_until still refers to “input sequence”  | 
Rapperswil  | 
Nothing To Do  | 
|||
Non-member functions for valarray should only deduce from the valarray  | 
Rapperswil  | 
||||
basic_string CTAD ambiguity  | 
Rapperswil  | 
Complete  | 
|||
LWG 2935 forgot to fix the existing_p overloads of create_directory  | 
Rapperswil  | 
Nothing To Do  | 
|||
Floating point from_chars pattern specification breaks round-tripping  | 
Rapperswil  | 
||||
What should ios::iword(-1) do?  | 
Rapperswil  | 
Nothing To Do  | 
|||
[time.duration.io]p4 makes surprising claims about encoding  | 
Rapperswil  | 
||||
Unnecessary and confusing “empty span” wording  | 
Rapperswil  | 
Nothing To Do  | 
|||
Clarify span iterator and   | 
Rapperswil  | 
Complete  | 
|||
Fixing duration division  | 
Rapperswil  | 
Complete  | 
|||
Muddled allocator requirements for   | 
San Diego  | 
Complete  | 
|||
Muddled allocator requirements for   | 
San Diego  | 
Complete  | 
|||
  | 
San Diego  | 
||||
  | 
San Diego  | 
Resolved by P0487R1  | 
|||
  | 
San Diego  | 
Nothing To Do  | 
|||
[concurr.ts] Behavior of   | 
San Diego  | 
||||
Trait precondition violations  | 
San Diego  | 
Resolved by 1285R0  | 
|||
Path comparison is defined in terms of the generic format  | 
San Diego  | 
Complete  | 
|||
Problematic specification of the wide version of   | 
San Diego  | 
Nothing To Do  | 
|||
[fund.ts.v3]   | 
San Diego  | 
Complete  | 
|||
  | 
San Diego  | 
||||
Missing rvalue overloads for   | 
San Diego  | 
||||
  | 
San Diego  | 
||||
  | 
San Diego  | 
Resolved by 1285R0  | 
|||
Map-like container deduction guides should use   | 
San Diego  | 
Complete  | 
|||
Algorithms and predicates with non-const reference arguments  | 
San Diego  | 
||||
  | 
San Diego  | 
||||
  | 
San Diego  | 
Complete  | 
14.0  | 
||
  | 
San Diego  | 
Nothing To Do  | 
|||
LWG 2989 missed that all   | 
San Diego  | 
Complete  | 
|||
  | 
San Diego  | 
Complete  | 
|||
  | 
San Diego  | 
||||
  | 
San Diego  | 
Complete  | 
|||
  | 
San Diego  | 
||||
  | 
San Diego  | 
Nothing To Do  | 
|||
  | 
San Diego  | 
||||
§[input.output] needs many   | 
San Diego  | 
||||
  | 
San Diego  | 
||||
Library needs to ban macros named   | 
San Diego  | 
Nothing To Do  | 
|||
[fund.ts.v3] LFTSv3 contains extraneous [meta] variable templates that should have been deleted by P09961  | 
San Diego  | 
Resolved by P1210R0  | 
|||
Header for   | 
San Diego  | 
Complete  | 
|||
  | 
San Diego  | 
Nothing To Do  | 
|||
  | 
San Diego  | 
Complete  | 
|||
Definitions of “likely” and “unlikely” are likely to cause problems  | 
San Diego  | 
||||
  | 
San Diego  | 
||||
  | 
San Diego  | 
Complete  | 
13.0  | 
||
  | 
San Diego  | 
Nothing To Do  | 
|||
  | 
Kona  | 
||||
  | 
Kona  | 
Complete  | 
|||
  | 
Kona  | 
Nothing To Do  | 
|||
One final   | 
Kona  | 
Nothing To Do  | 
|||
  | 
Kona  | 
Complete  | 
|||
  | 
Kona  | 
||||
Program-definedness of closure types  | 
Kona  | 
Nothing To Do  | 
|||
Modernizing numeric type requirements  | 
Kona  | 
||||
  | 
Kona  | 
Complete  | 
|||
Enable CTAD for   | 
Kona  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Kona  | 
Nothing To Do  | 
ranges  | 
||
Inconsistently named return type for   | 
Kona  | 
Complete  | 
15.0  | 
ranges  | 
|
Specification of   | 
Kona  | 
Complete  | 
15.0  | 
||
  | 
Cologne  | 
||||
  | 
Cologne  | 
Complete  | 
7.0  | 
||
  | 
Cologne  | 
Complete  | 
10.0  | 
||
  | 
Cologne  | 
Complete  | 
15.0  | 
ranges  | 
|
Normative permission to specialize Ranges variable templates  | 
Cologne  | 
Nothing To Do  | 
ranges  | 
||
Inconsistencies in   | 
Cologne  | 
Complete  | 
13.0  | 
||
Uses-allocator construction functions missing   | 
Cologne  | 
||||
  | 
Cologne  | 
Complete  | 
15.0  | 
ranges  | 
|
P0591R4 reverted DR 2586 fixes to   | 
Cologne  | 
||||
  | 
Cologne  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Cologne  | 
Complete  | 
|||
Bad constraint on   | 
Cologne  | 
Complete  | 
|||
  | 
Cologne  | 
||||
P0318R1 was supposed to be revised  | 
Cologne  | 
Complete  | 
|||
  | 
Cologne  | 
Complete  | 
|||
  | 
Cologne  | 
Nothing To Do  | 
|||
Expression in   | 
Cologne  | 
Complete  | 
|||
  | 
Belfast  | 
Nothing To Do  | 
|||
  | 
Belfast  | 
chrono  | 
|||
  | 
Belfast  | 
Complete  | 
14.0  | 
||
Modifier for   | 
Belfast  | 
chrono format  | 
|||
  | 
Belfast  | 
chrono  | 
|||
Format specifier   | 
Belfast  | 
chrono format  | 
|||
Inconsistency in   | 
Belfast  | 
chrono  | 
|||
P0574R1 introduced preconditions on non-existent parameters  | 
Belfast  | 
||||
Result of   | 
Belfast  | 
Complete  | 
8.0  | 
||
  | 
Belfast  | 
||||
What are the constraints on the template parameter of   | 
Belfast  | 
format  | 
|||
  | 
Belfast  | 
||||
Unnecessary restriction on   | 
Belfast  | 
chrono  | 
|||
Constraints for   | 
Belfast  | 
||||
  | 
Belfast  | 
chrono format  | 
|||
Missing feature testing macro update from P0858  | 
Belfast  | 
||||
Feature testing macro for   | 
Belfast  | 
Complete  | 
13.0  | 
||
Specify   | 
Belfast  | 
chrono  | 
|||
  | 
Belfast  | 
||||
  | 
Belfast  | 
Complete  | 
14.0  | 
||
  | 
Belfast  | 
chrono format  | 
|||
The definition of constexpr iterators should be adjusted  | 
Belfast  | 
Nothing To Do  | 
ranges  | 
||
Errors in taking subview of   | 
Belfast  | 
||||
Missing feature test macro for   | 
Belfast  | 
Complete  | 
11.0  | 
||
Class   | 
Belfast  | 
Complete  | 
15.0  | 
ranges  | 
|
Pre-increment on prvalues is not a requirement of   | 
Belfast  | 
Nothing To Do  | 
ranges  | 
||
  | 
Belfast  | 
Complete  | 
13.0  | 
||
More useful rvalue stream insertion  | 
Prague  | 
Complete  | 
12.0  | 
||
Definition of reachable in [ptr.launder] misses pointer arithmetic from pointer-interconvertible object  | 
Prague  | 
||||
  | 
Prague  | 
||||
Conversion specification problem in   | 
Prague  | 
chrono  | 
|||
  | 
Prague  | 
Nothing To Do  | 
|||
  | 
Prague  | 
Complete  | 
13.0  | 
||
The   | 
Prague  | 
Complete  | 
13.0  | 
||
  | 
Prague  | 
Complete  | 
13.0  | 
||
  | 
Prague  | 
Nothing To Do  | 
|||
  | 
Prague  | 
Complete  | 
|||
  | 
Prague  | 
chrono  | 
|||
Broken requirements for   | 
Prague  | 
||||
LWG 3038 and 3190 have inconsistent PRs  | 
Prague  | 
Complete  | 
14.0  | 
||
Insufficiently-defined behavior of   | 
Prague  | 
||||
  | 
Prague  | 
Complete  | 
Clang 14  | 
format  | 
|
  | 
Prague  | 
Complete  | 
14.0  | 
format  | 
|
  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Prague  | 
Complete  | 
14.0  | 
format  | 
|
  | 
Prague  | 
Complete  | 
14.0  | 
format  | 
|
Are   | 
Prague  | 
Complete  | 
14.0  | 
format  | 
|
Parse locale’s aware modifiers for commands are not consistent with POSIX spec  | 
Prague  | 
chrono  | 
|||
Strike   | 
Prague  | 
||||
  | 
Prague  | 
Complete  | 
|||
  | 
Prague  | 
chrono  | 
|||
Formatting of negative durations is not specified  | 
Prague  | 
chrono format  | 
|||
  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
Parse manipulators do not specify the result of the extraction from stream  | 
Prague  | 
chrono  | 
|||
Parsing and formatting   | 
Prague  | 
chrono format  | 
|||
View converting constructors can cause constraint recursion and are unneeded  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
Conversion from   | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Prague  | 
Nothing To Do  | 
ranges  | 
||
The type of a customization point object shall satisfy   | 
Prague  | 
Nothing To Do  | 
ranges  | 
||
  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Prague  | 
chrono  | 
|||
Inconsistent default argument for   | 
Prague  | 
Complete  | 
|||
Pointers don’t need customized iterator behavior  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
Non-array   | 
Prague  | 
Nothing To Do  | 
|||
  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
Range adaptor objects   | 
Prague  | 
ranges  | 
|||
Bad “  | 
Prague  | 
||||
Allocate functions of   | 
Prague  | 
||||
  | 
Prague  | 
||||
Replace   | 
Prague  | 
||||
  | 
Prague  | 
Complete  | 
14.0  | 
ranges  | 
|
Is stream insertion behavior locale dependent when   | 
Prague  | 
chrono  | 
|||
Correct Allocator Default Behavior  | 
Prague  | 
||||
Correctly define epoch for   | 
Prague  | 
chrono  | 
|||
Incorrect   | 
Prague  | 
chrono  | 
|||
Clarify whether clocks can represent time before their epoch  | 
Prague  | 
chrono  | 
|||
Properly reference specification of IANA time zone database  | 
Prague  | 
chrono  | 
|||
  | 
Prague  | 
Complete  | 
|||
  | 
Prague  | 
||||
  | 
Prague  | 
ranges  | 
|||
Special-case   | 
Prague  | 
Complete  | 
14.0  | 
spaceship  | 
|
Constrain return type of transformation function for   | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
Format alignment specifiers vs. text direction  | 
Prague  | 
Nothing To Do  | 
format  | 
||
Clarify that   | 
Prague  | 
||||
  | 
Prague  | 
Complete  | 
13.0  | 
||
Include   | 
Prague  | 
Complete  | 
13.0  | 
spaceship  | 
|
Define   | 
Prague  | 
Complete  | 
13.0  | 
||
Issue in §[time.format]  | 
Prague  | 
chrono format  | 
|||
  | 
Prague  | 
||||
Resolve C++20 NB comments US 273 and GB 274  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
Rename   | 
Prague  | 
Complete  | 
13.0  | 
||
Formatting functions should throw on argument/format string mismatch in §[format.functions]  | 
Prague  | 
Complete  | 
14.0  | 
format  | 
|
  | 
Prague  | 
||||
  | 
Prague  | 
||||
  | 
Prague  | 
Complete  | 
12.0  | 
||
Missing   | 
Prague  | 
||||
Simplify return type of   | 
Prague  | 
spaceship  | 
|||
  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Prague  | 
Nothing To Do  | 
spaceship  | 
||
  | 
Prague  | 
Nothing To Do  | 
spaceship  | 
||
The memory algorithms should support move-only input iterators introduced by P1207  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Prague  | 
Complete  | 
12.0  | 
||
§[span.cons] is mistaken that   | 
Prague  | 
||||
  | 
Prague  | 
chrono  | 
|||
  | 
Prague  | 
Nothing To Do  | 
spaceship  | 
||
Strike   | 
Prague  | 
||||
  | 
Prague  | 
Nothing To Do  | 
ranges  | 
||
Initialize data members of ranges and their iterators  | 
Prague  | 
ranges  | 
|||
Integer-class conversions should not throw  | 
Prague  | 
Nothing To Do  | 
|||
  | 
Prague  | 
Complete  | 
14.0  | 
||
  | 
Prague  | 
Complete  | 
14.0  | 
format  | 
|
  | 
Prague  | 
Complete  | 
14.0  | 
format  | 
|
  | 
Prague  | 
Complete  | 
14.0  | 
format  | 
|
P0653 + P1006 should have made the other   | 
Prague  | 
Complete  | 
12.0  | 
||
  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Prague  | 
ranges  | 
|||
“  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Prague  | 
Complete  | 
15.0  | 
spaceship  | 
|
  | 
Prague  | 
Nothing To Do  | 
ranges  | 
||
NTTP for   | 
Prague  | 
||||
§[time.zone.leap.nonmembers]   | 
Prague  | 
chrono  | 
|||
  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
§[range.reverse.view]   | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Prague  | 
ranges  | 
|||
A move-only iterator still does not have a   | 
Prague  | 
Complete  | 
15.0  | 
ranges  | 
|
  | 
Prague  | 
Complete  | 
14.0  | 
ranges  | 
|
Missing/incorrect feature test macro for coroutines  | 
Prague  | 
Complete  | 
14.0  | 
||
Definition for three-way comparison needs to be updated (US 152)  | 
Prague  | 
spaceship  | 
|||
Clarify point of reference for   | 
Prague  | 
||||
  | 
Prague  | 
ranges  | 
|||
  | 
Prague  | 
Complete  | 
14.0  | 
ranges  | 
|
  | 
November virtual meeting  | 
Complete  | 
13.0  |