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