C++29
From cppreference.com
< cpp
The next generation of the C++ standard.
The current IS schedule for C++29: P1000R8 (2026-04-13).
| This section is incomplete |
New language features
New library features
New modules
New headers
| This section is incomplete |
Obsolete features
Removed features
| This section is incomplete |
Deprecated features
| This section is incomplete |
Defect reports
Compiler support
Main Article: C++29 compiler support
C++29 core language features
| C++29 feature |
Paper(s) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (ex PGI)* |
Nvidia nvcc |
Cray |
|
|---|---|---|---|---|---|---|---|---|---|---|---|
#embed offset parameter (FTM)*
|
P3540R3 | ||||||||||
| Contracts for virtual functions (FTM)* | P3097R3 | ||||||||||
| Pack indexing for templates (FTM)* | P3670R4 | ||||||||||
| Designated initializers for base classes (FTM)* | P2287R6 | ||||||||||
| Deallocation functions with throwing exception specification are ill-formed | P3424R2 | ||||||||||
| Conditional noexcept specifiers in compound requirements (FTM)* | P3822R2 | ||||||||||
| Defaulting postfix increment and decrement operator functions | P3668R4 | ||||||||||
| Adding restrictions to defaulted assignment operator functions | P2953R5 | ||||||||||
| DR26: consteval-only values (FTM)* | P4101R1 | ||||||||||
| DR23: Allowing figment and abbreviation in named universal character escapes | P3733R1 | ||||||||||
| DR20: Removing mutual exclusivity for coroutine promise return functions (FTM)* | P3950R1 | ||||||||||
| DR: Adjusting identifier following new Unicode recommendations | P3658R1 | ||||||||||
| DR: Explicit lambda capture is declared and initialized in lexical order | P3847R1 | 3.1 | |||||||||
| DR: Allowing C language linkage for templates | P2243R0 | ||||||||||
| DR: Clarifying the behavior of floating-point overflow | P3899R3 | ||||||||||
| DR: Non-deterministic pointer provenance | P2434R5 | ||||||||||
| DR: Resolving pointer lifetime-end zap for atomic and volatile accesses | P2414R12 | ||||||||||
| DR: Defining load and store operations for invalid pointers | P3347R6 | ||||||||||
| C++29 feature |
Paper(s) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (ex PGI)* |
Nvidia nvcc |
Cray |
C++29 library features
| C++29 feature |
Paper(s) |
GCC libstdc++ |
Clang libc++ |
MSVC STL |
Apple Clang* |
|
|---|---|---|---|---|---|---|
| Better lookup function for map containers (FTM)* | P3091R6 | |||||
| Pointer tagging (FTM)* | P3125R6 | |||||
| Thread attributes (FTM)* | P2019R9 | |||||
| Hazard pointer batches (FTM)* | P3428R4 | |||||
| Bit permutations (FTM)* (FTM)* | P3104R6 P3772R2 |
|||||
| std::shl and std::shr (FTM)* (FTM)* | P3793R2 | |||||
| std::mdspan copy and fill operations (FTM)* | P3242R4 | |||||
| std::simd::iota (FTM)* | P3319R6 | |||||
| std::expected::has_error() (FTM)* | P3798R1 | |||||
| view_interface::at() (FTM)* | P3052R2 | |||||
| std::formatter<std::error_code> | P3395R6 | |||||
| Fixing the default floating-point representation in std::to_chars (FTM)* | P3505R4 | |||||
| Requiring std::intptr_t and std::uintptr_t | P3248R5 | |||||
| Deprecating signed character types in I/O streams | P3154R3 | |||||
| DR26: Reverting string literal support in std::constant_wrapper (FTM)* | P4206R0 | 17 | ||||
| C++29 feature |
Paper(s) |
GCC libstdc++ |
Clang libc++ |
MSVC STL |
Apple Clang* |
* - hover over a cell marked with the star * to see additional pop-up notes.
DRnn - the number nn after "DR" denotes target C++ revision the Defect Report is applied to, e.g., DR20 → C++20.
External links
| 1. | C++29 - Wikipedia |