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 |
Labels |
---|---|---|---|---|---|---|
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 |
Complete |
16.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 |
Complete |
16.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 |
Complete |
16.0 |
||
LWG |
Fixing |
San Diego |
Complete |
8.0 |
||
LWG |
Utility functions to implement uses-allocator construction |
San Diego |
Partial 1 |
|||
CWG |
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 |
ranges |
|
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 |
Complete |
16.0 |
||
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 |
Complete |
16.0 |
||
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 |
ranges |
|
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 |
Complete |
16.0 |
ranges |
|
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 |
ranges |
|
LWG |
Adopt source_location for C++20 |
Cologne |
Complete |
16.0 |
||
LWG |
Exposing a narrow contract for ceil2 |
Cologne |
Complete |
9.0 |
||
LWG |
Integration of chrono with text formatting |
Cologne |
Partial |
|||
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 |
ranges |
|
LWG |
Standard library header units for C++20 |
Cologne |
||||
LWG |
Iterator Difference Type and Integer Overflow |
Cologne |
Complete |
15.0 |
ranges |
|
LWG |
Views and Size Types |
Cologne |
Complete |
15.0 |
ranges |
|
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 |
Complete |
16.0 |
ranges |
|
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 |
Complete |
16.0 |
||
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 |
Complete |
15.0 |
ranges |
|
LWG |
Fixing Atomic Initialization |
Belfast |
14.0 |
|||
LWG |
Range constructor for std::string_view |
Belfast |
Complete |
14.0 |
ranges |
|
LWG |
Range constructor for std::span |
Belfast |
Complete |
14.0 |
ranges |
|
LWG |
Move-only views |
Belfast |
Complete |
15.0 |
ranges |
|
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 |
ranges |
|
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 |
Complete |
16.0 |
ranges |
|
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 |
ranges |
|
LWG |
Concept traits should be named after concepts |
Belfast |
Complete |
14.0 |
ranges |
|
LWG |
span should have size_type, not index_type |
Belfast |
Complete |
10.0 |
||
LWG |
Constraining Readable Types |
Belfast |
Complete |
15.0 |
ranges |
|
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 |
Nothing To Do |
|||
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 |
ranges |
|
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 |
ranges |
|
LWG |
Deprecating volatile: library |
Prague |
||||
LWG |
width: clarifying units of width and precision in std::format |
Prague |
Complete |
14.0 |
||
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 |
ranges |
|
LWG |
Rename “_default_init” Functions, Rev1 |
Prague |
Complete |
16.0 |
||
LWG |
Fixed-size span construction from dynamic range |
Prague |
Complete |
11.0 |
ranges |
|
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 |
ranges |
|
LWG |
elements_view needs its own sentinel |
Prague |
Complete |
16.0 |
ranges |
|
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 |
ranges |
|
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 |
ranges |
|
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 |
Complete |
16.0 |
ranges |
|
LWG |
Superior String Splitting |
June 2021 |
Complete |
16.0 |
ranges |
|
LWG |
std::format improvements |
June 2021 |
Complete |
15.0 |
||
LWG |
Clarifying range adaptor objects |
June 2021 |
Complete |
14.0 |
ranges |
|
LWG |
join_view should join all views of ranges |
June 2021 |
Complete |
15.0 |
ranges |
|
LWG |
Remove misuses of list-initialization from Clause 24 |
June 2021 |
Complete |
15.0 |
ranges |
|
LWG |
Fixing locale handling in chrono formatters |
October 2021 |
In Progress |
|||
LWG |
What is a |
October 2021 |
Complete |
14.0 |
ranges |
|
LWG |
Add support for |
October 2021 |
Complete |
15.0 |
||
LWG |
Fix |
October 2021 |
Complete |
16.0 |
ranges |
Note
- 1
P0591: The changes in [mem.poly.allocator.mem] are missing.
- 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_INIT
was 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 |
Complete |
16.0 |
||
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 |
Complete |
16.0 |
||
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 |
Complete |
16.0 |
||
[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 |
Complete |
16.0 |
||
|
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 |
Complete |
16.0 |
||
|
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 |
Complete |
16.0 |
||
|
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 |
Complete |
16.0 |
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 |
Complete |
16.0 |
chrono format |
|
Missing feature testing macro update from P0858 |
Belfast |
||||
Feature testing macro for |
Belfast |
Complete |
13.0 |
||
Specify |
Belfast |
Complete |
16.0 |
chrono |
|
|
Belfast |
||||
|
Belfast |
Complete |
14.0 |
||
|
Belfast |
chrono format |
|||
The definition of constexpr iterators should be adjusted |
Belfast |
Nothing To Do |
|||
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 |
ranges |
|
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 |
16.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 |
Complete |
16.0 |
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 |
Partial |
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 |
Complete |
16.0 |
ranges |
|
Bad “ |
Prague |
||||
Allocate functions of |
Prague |
Complete |
16.0 |
||
|
Prague |
||||
Replace |
Prague |
Complete |
16.0 |
||
|
Prague |
Complete |
14.0 |
ranges |
|
Is stream insertion behavior locale dependent when |
Prague |
Complete |
16.0 |
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 |
Complete |
16.0 |
||
|
Prague |
Complete |
16.0 |
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 |
Complete |
16.0 |
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 |
Complete |
16.0 |
||
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 |
Complete |
16.0 |
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 |
Nothing To Do |
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 |
Complete |
16.0 |
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 |
Nothing To Do |
16.0 |
||
|
Prague |
Complete |
16.0 |
ranges |
|
|
Prague |
Complete |
14.0 |
ranges |
|
|
November virtual meeting |
Complete |
13.0 |
ranges |