libc++ C++2c Status¶
Overview¶
In June 2023, the C++ standard committee adopted the first changes to the next version of the C++ standard, known here as “C++2c” (probably to be C++26).
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 # |
Paper Name |
Meeting |
Status |
First released version |
Notes |
---|---|---|---|---|---|
Testing for success or failure of |
2023-06 (Varna) |
Complete |
18 |
||
Hashing support for |
2023-06 (Varna) |
||||
|
2023-06 (Varna) |
||||
|
2023-06 (Varna) |
||||
Read-Copy Update (RCU) |
2023-06 (Varna) |
||||
Hazard Pointers for C++26 |
2023-06 (Varna) |
||||
ADL-proof |
2023-06 (Varna) |
Complete |
18 |
||
Interfacing |
2023-06 (Varna) |
Complete |
19 |
||
Formatting pointers |
2023-06 (Varna) |
Complete |
17 |
Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.) |
|
Freestanding Feature-Test Macros and Implementation-Defined Extensions |
2023-06 (Varna) |
||||
Freestanding Library: Character primitives and the C library |
2023-06 (Varna) |
||||
Freestanding Language: Optional |
2023-06 (Varna) |
||||
Extending associative containers with the remaining heterogeneous overloads |
2023-06 (Varna) |
||||
Enabling the Use of |
2023-06 (Varna) |
||||
Naming Text Encodings to Demystify Them |
2023-06 (Varna) |
||||
|
2023-06 (Varna) |
||||
Mandating Annex D Require No More |
2023-06 (Varna) |
||||
Type-checking format args |
2023-06 (Varna) |
||||
Member |
2023-06 (Varna) |
Complete |
19 |
Change of |
|
Checking if a |
2023-06 (Varna) |
||||
Native handles and file streams |
2023-06 (Varna) |
Complete |
18 |
||
Interfacing |
2023-06 (Varna) |
Complete |
18 |
||
More |
2023-06 (Varna) |
||||
Adding the new SI prefixes |
2023-06 (Varna) |
Complete |
17 |
||
|
2023-06 (Varna) |
||||
Bind front and back to NTTP callables |
2023-06 (Varna) |
||||
|
2023-06 (Varna) |
||||
Saturation arithmetic |
2023-11 (Kona) |
Complete |
18 |
||
Freestanding Library: Partial Classes |
2023-11 (Kona) |
||||
Debugging Support |
2023-11 (Kona) |
||||
Runtime format strings |
2023-11 (Kona) |
Complete |
18 |
||
Runtime format strings II |
2023-11 (Kona) |
Complete |
18 |
||
Fix formatting of code units as integers (Dude, where’s my |
2023-11 (Kona) |
Complete |
18 |
||
A new specification for |
2023-11 (Kona) |
||||
|
2023-11 (Kona) |
Complete |
18 |
||
|
2023-11 (Kona) |
Complete |
18 |
||
Remove Deprecated |
2023-11 (Kona) |
Complete |
18 |
||
Remove |
2023-11 (Kona) |
Complete |
18 |
||
Remove Deprecated Unicode Conversion Facets from C++26 |
2023-11 (Kona) |
Complete |
18 |
||
Add tuple protocol to complex |
2023-11 (Kona) |
Complete |
19 |
||
Freestanding: Remove |
2023-11 (Kona) |
||||
Freestanding Library: inout expected span |
2023-11 (Kona) |
||||
|
2023-11 (Kona) |
||||
Make |
2023-11 (Kona) |
||||
A free function linear algebra interface based on the BLAS |
2023-11 (Kona) |
||||
Undeprecate |
2024-03 (Tokyo) |
Complete |
15 |
||
Remove Deprecated |
2024-03 (Tokyo) |
Complete |
19 |
||
Remove Deprecated |
2024-03 (Tokyo) |
||||
Remove |
2024-03 (Tokyo) |
Complete |
19 |
||
Permit an efficient implementation of |
2024-03 (Tokyo) |
||||
Printing Blank Lines with |
2024-03 (Tokyo) |
Complete |
19 |
Implemented as a DR against C++23. (MSVC STL and libstdc++ will do the same.) |
|
Formatting of |
2024-03 (Tokyo) |
||||
Atomic minimum/maximum |
2024-03 (Tokyo) |
||||
|
2024-03 (Tokyo) |
||||
Concatenation of strings and string views |
2024-03 (Tokyo) |
Complete |
19 |
||
Enabling list-initialization for algorithms |
2024-03 (Tokyo) |
||||
|
2024-03 (Tokyo) |
||||
Vector API for random number generation |
2024-03 (Tokyo) |
||||
Comparisons for |
2024-03 (Tokyo) |
Partial |
19 |
Implemented comparisons for |
|
Padded |
2024-03 (Tokyo) |
||||
Better |
2024-03 (Tokyo) |
Complete |
19 |
||
|
2024-06 (St. Louis) |
Complete |
20 |
||
Removing the common reference requirement from the indirectly invocable concepts |
2024-06 (St. Louis) |
Complete |
19 |
Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.) |
|
|
2024-06 (St. Louis) |
Complete |
19 |
||
Give |
2024-06 (St. Louis) |
||||
Adjoints to ‘Enabling list-initialization for algorithms’: find_last |
2024-06 (St. Louis) |
||||
A type trait for detecting virtual base classes |
2024-06 (St. Louis) |
Complete |
20 |
||
|
2024-06 (St. Louis) |
||||
|
2024-06 (St. Louis) |
||||
Make |
2024-06 (St. Louis) |
Complete |
19 |
||
Philox as an extension of the C++ RNG engines |
2024-06 (St. Louis) |
||||
Remove |
2024-06 (St. Louis) |
Complete |
19 |
|
|
|
2024-06 (St. Louis) |
||||
Retiring niebloids |
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
Constrain |
2024-11 (Wrocław) |
||||
Put |
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
Fix |
2024-11 (Wrocław) |
||||
Fix C++26 by adding transposed special cases for P2642 layouts |
2024-11 (Wrocław) |
||||
Fix C++26 by optimizing |
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
Expose |
2024-11 (Wrocław) |
||||
cv-qualified types in |
2024-11 (Wrocław) |
||||
Wording for “constexpr for specialized memory algorithms” |
2024-11 (Wrocław) |
||||
constexpr for |
2024-11 (Wrocław) |
||||
Add new library headers from C23 |
2024-11 (Wrocław) |
||||
constexpr |
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
A Utility for Creating Execution Environments |
2024-11 (Wrocław) |
||||
Allowing exception throwing in constant-evaluation |
2024-11 (Wrocław) |
||||
Deprecate the notion of trivial types |
2024-11 (Wrocław) |
||||
Library Working Group Issues Status¶
Issue # |
Issue Name |
Meeting |
Status |
First released version |
Notes |
---|---|---|---|---|---|
Needless UB for |
2023-06 (Varna) |
Complete |
5 |
||
|
2023-06 (Varna) |
||||
|
2023-06 (Varna) |
Nothing To Do |
|||
Version macro for |
2023-06 (Varna) |
Complete |
19 |
||
LWG 3661 broke |
2023-06 (Varna) |
||||
|
2023-06 (Varna) |
||||
span destructor is redundantly noexcept |
2023-06 (Varna) |
Complete |
7 |
||
|
2023-06 (Varna) |
||||
Type of |
2023-06 (Varna) |
Complete |
3.4 |
||
|
2023-06 (Varna) |
||||
Inconsistent template-head of |
2023-06 (Varna) |
||||
Redundant paragraph about expression variations |
2023-06 (Varna) |
||||
Concept |
2023-06 (Varna) |
Complete |
17 |
||
Unclear preconditions for |
2023-06 (Varna) |
Nothing To Do |
|||
|
2023-06 (Varna) |
Complete |
3.4 |
||
Cannot use |
2023-06 (Varna) |
Complete |
18 |
||
|
2023-06 (Varna) |
Complete |
18 |
||
“character type” is used but not defined |
2023-11 (Kona) |
||||
|
2023-11 (Kona) |
Nothing To Do |
|||
|
2023-11 (Kona) |
Complete |
18 |
||
|
2023-11 (Kona) |
||||
|
2023-11 (Kona) |
||||
Is |
2023-11 (Kona) |
||||
Incorrect formatting of nested ranges and tuples |
2023-11 (Kona) |
Complete |
17 |
||
|
2023-11 (Kona) |
Complete |
19 |
||
The definition of |
2023-11 (Kona) |
||||
Unexpected constraints on |
2023-11 (Kona) |
||||
|
2023-11 (Kona) |
||||
|
2023-11 (Kona) |
||||
[expected.object.swap]: Using |
2023-11 (Kona) |
Complete |
16 |
||
|
2023-11 (Kona) |
Complete |
20 |
||
[container.alloc.reqmts] The value category of v should be claimed |
2023-11 (Kona) |
||||
Incorrect example in [format.string.escaped] p3 for formatting of combining characters |
2023-11 (Kona) |
Complete |
19 |
||
[mdspan.syn] Missing definition of |
2023-11 (Kona) |
||||
Monadic operations should be ADL-proof |
2023-11 (Kona) |
||||
|
2023-11 (Kona) |
||||
Including |
2023-11 (Kona) |
||||
Program-defined specializations of |
2023-11 (Kona) |
||||
|
2023-11 (Kona) |
Complete |
19 |
||
|
2024-03 (Tokyo) |
||||
|
2024-03 (Tokyo) |
||||
|
2024-03 (Tokyo) |
Complete |
18 |
||
Specializations of |
2024-03 (Tokyo) |
Nothing To Do |
|||
|
2024-03 (Tokyo) |
Complete |
19 |
||
|
2024-03 (Tokyo) |
Nothing To Do |
|||
|
2024-03 (Tokyo) |
||||
|
2024-03 (Tokyo) |
||||
container-insertable checks do not match what container-inserter does |
2024-03 (Tokyo) |
Complete |
20 |
||
Preconditions of |
2024-03 (Tokyo) |
Complete |
19 |
||
Move assignment operator of |
2024-03 (Tokyo) |
Complete |
20 |
||
Clarify whether arithmetic expressions in |
2024-03 (Tokyo) |
Nothing To Do |
|||
|
2024-03 (Tokyo) |
Complete |
16 |
||
|
2024-03 (Tokyo) |
Complete |
19 |
||
|
2024-03 (Tokyo) |
||||
Static data members of |
2024-03 (Tokyo) |
||||
|
2024-03 (Tokyo) |
||||
“ASCII” is not a registered character encoding |
2024-03 (Tokyo) |
Nothing To Do |
|||
|
2024-03 (Tokyo) |
||||
Unary call to |
2024-03 (Tokyo) |
Complete |
19 |
||
Repeating a |
2024-03 (Tokyo) |
Complete |
19 |
||
Formatters converting sequences of |
2024-06 (St. Louis) |
||||
|
2024-06 (St. Louis) |
||||
Should |
2024-06 (St. Louis) |
Complete |
19 |
||
|
2024-06 (St. Louis) |
Complete |
19 |
||
|
2024-06 (St. Louis) |
||||
|
2024-06 (St. Louis) |
||||
Missing Preconditions in |
2024-06 (St. Louis) |
||||
|
2024-06 (St. Louis) |
||||
|
2024-06 (St. Louis) |
||||
|
2024-06 (St. Louis) |
||||
|
2024-06 (St. Louis) |
||||
|
2024-06 (St. Louis) |
||||
|
2024-06 (St. Louis) |
Complete |
19 |
||
Rebinding the allocator before calling |
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
Monad mo’ problems |
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
The |
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
LWG 3809 changes behavior of some existing |
2024-11 (Wrocław) |
||||
Underspecified destruction of objects created in |
2024-11 (Wrocław) |
16 |
|||
|
2024-11 (Wrocław) |
||||
Confusing requirements for |
2024-11 (Wrocław) |
||||
Clarify that |
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
Disallow |
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
Cannot format |
2024-11 (Wrocław) |
||||
Some feature-test macros for fully freestanding features are not yet marked freestanding |
2024-11 (Wrocław) |
||||
Issue with Philox algorithm specification |
2024-11 (Wrocław) |
||||
The helper lambda of |
2024-11 (Wrocław) |
||||
Useless default constructors for bit reference types |
2024-11 (Wrocław) |
||||
Improve prohibitions on “additional storage” |
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
Disallow |
2024-11 (Wrocław) |
||||
Precondition on |
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
Fix extra “-1” for |
2024-11 (Wrocław) |
||||
The Mandates for |
2024-11 (Wrocław) |
||||
The resolution of LWG3465 was damaged by P2167R3 |
2024-11 (Wrocław) |
20 |
|||
Missing guarantees for |
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
|
2024-11 (Wrocław) |
||||
Ordering of calls to |
Not Adopted Yet |
Complete |
16 |
||
§[time.zone.leap] recursive constraint in <=> |
Not Adopted Yet |
Complete |
20 |
||
Pattern used by std::from_chars is underspecified (option B) |
Not Adopted Yet |
Complete |
20 |
||