Namespaces
Variants

C++26

From cppreference.com
< cpp

The next generation of the C++ standard.

The current IS schedule for C++26: P1000R6 (2024-05-14).

New language features

New library features

New modules

New headers

C compatibility headers:

Obsolete features

Removed features

Deprecated features

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)*