C++26
From cppreference.com
< cpp
The next generation of the C++ standard.
The current IS schedule for C++26: P1000R6 (2024-05-14).
| This section is incomplete |
New language features
New library features
New modules
New headers
- <contracts>
- <debugging>
- <hazard_pointer>
- <hive>
- <inplace_vector>
- <linalg>
- <meta>
- <rcu>
- <simd>
- <text_encoding>
C compatibility headers:
Obsolete features
Removed features
| This section is incomplete |
Deprecated features
| This section is incomplete |
Defect reports
Compiler support
Main Article: C++26 compiler support
C++26 core language features
| C++26 feature |
Paper(s) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (ex PGI)* |
Nvidia nvcc |
Cray |
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| DR98: Removing undefined behavior from lexing | P2621R3 | Yes | 3.3 | 16.0.0* | |||||||
| DR98: Making non-encodable string literals ill-formed | P1854R4 | 14 | 14 | 16.0.0* | |||||||
| Unevaluated strings | P2361R6 | 14 | 17 (partial)* 18 |
16.0.0* | |||||||
Adding @, $, and ` to the basic character set
|
P2558R2 | 15 | Yes | 16.0.0* | |||||||
constexpr cast from void* (FTM)*
|
P2738R1 | 14 | 17 | ||||||||
| DR20: On the ignorability of standard attributes | P2552R3 | 15 | Yes | ||||||||
| DR11: Static storage for braced initializers | P2752R3 | 14 | |||||||||
| User-generated static_assert messages (FTM)* | P2741R3 | 14 | 17 | ||||||||
| Placeholder variables with no name (FTM)* | P2169R4 | 14 | 18 | ||||||||
| Pack indexing (FTM)* | P2662R3 | 15 | 19 | ||||||||
| Removing deprecated arithmetic conversion on enumerations | P2864R2 | 14 | 18 | ||||||||
| DR11/20: Template parameter initialization | P2308R1 | 9 | 18 | ||||||||
| Disallow binding a returned reference to a temporary | P2748R5 | 14 | 19 | ||||||||
| Attributes for structured bindings (FTM)* | P0609R3 | 15 | 19 | ||||||||
Erroneous behavior for uninitialized reads, [[indeterminate]] attribute
|
P2795R5 P3684R1 |
16 | |||||||||
= delete("reason"); (FTM)*
|
P2573R2 | 15 | 19 | ||||||||
| Variadic friends (FTM)* | P2893R3 | 15 | 20 | ||||||||
| DR98: Clarifying rules for brace elision in aggregate initialization | P3106R1 | Yes | 17 | ||||||||
| DR20: Disallow module declarations to be macros | P3034R1 | 15 | |||||||||
| DR11: Trivial infinite loops are not undefined behavior | P2809R3 | 14 | 19 | ||||||||
constexpr placement new (FTM)* (FTM)*
|