Compiler support for C++29 - cppreference.com

From cppreference.com

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

C++29 core language features

C++29 featurePaper(s)GCC

Clang

MSVC

Apple Clang

EDG eccp

Intel C++

Nvidia HPC C++ (ex PGI)*

Nvidia nvcc

Cray

#embed

offset

parameter (

FTM

)*

P3540R3

17

Contracts

for

virtual functions

(

FTM

)*

P3097R3

Pack indexing

for templates (

FTM

)*

P3670R4

24*

Designated initializers

for base classes (

FTM

)*

P2287R6

17 Deallocation functions with throwing exception specification are ill-formed

P3424R2

17 Conditional noexcept specifiers in

compound requirements

(

FTM

)*

P3822R2

17 Defaulting postfix increment and decrement operator functions

P3668R4

Adding restrictions to defaulted assignment operator functions

P2953R5

17 DR20: consteval-only values (

FTM

)*

P4101R1

DR23: Allowing figment and abbreviation in

named universal character escapes

P3733R1

17 DR20: Removing mutual exclusivity for

coroutine promise return functions

(

FTM

)*

P3950R1

DR98: Adjusting identifier following new Unicode recommendations

P3658R1

17 DR14:

Explicit lambda capture

is declared and initialized in lexical order

P3847R1

Yes 3.1 DR98: Allowing C language linkage for templates

P2243R0

DR98: Clarifying the behavior of floating-point overflow

P3899R3

12 DR98: Non-deterministic pointer provenance

P2434R5

DR98: Resolving pointer lifetime-end zap for atomic and volatile accesses

P2414R12

DR98: 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 featurePaper(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>

: bit permutations (

FTM

)*

P3104R6

<simd>

: bit permutations (

FTM

)*

P3772R2

<bit>

,

<simd>

: 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

DR17: 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*