Compiler support for C++23 - cppreference.com
Namespaces
Variants

Compiler support for C++23

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++23 core language features

C++23 feature

 
Paper(s)

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
Literal suffix for (signed) size_t  (FTM)* P0330R8 11 13 19.43* 13.1.6* 6.5 2022.2 23.9
Make () more optional for lambdas P1102R2 11 13 19.44* 13.1.6* 6.3 2022.2 22.5
if consteval  (FTM)* P1938R3 12 14 19.44* 14.0.0* 6.3 2022.2 24.1
Removing Garbage Collection Support P2186R2 12 N/A 19.30* N/A N/A
Narrowing contextual conversions in static_assert and constexpr if P1401R5 9 13 (partial)*
14
19.44* 14.0.0* 2022.2 20.7
Trimming whitespaces before line splicing P2223R2 Yes Yes 19.50* Yes 6.7 2022.2 Yes
Make declaration order layout mandated P1847R4 Yes Yes 19.30* Yes 2022.2 Yes
Removing mixed wide string literal concatenation P2201R1 Yes Yes 19.44* Yes Yes Yes Yes
Explicit object member functions (deducing this)  (FTM)* P0847R7 14 18
19*
19.32*
(partial)*
19.43*
6.3 22.5
auto(x) and auto{x}  (FTM)* P0849R8 12 15 19.50* 14.0.3* 6.4 2022.2 23.3
#elifdef and #elifndef P2334R1 12 13 19.40* 13.1.6* 6.5 2022.2 23.9
Non-literal variables (and labels and gotos) in constexpr functions  (FTM)* P2242R3 12 15 19.43* 14.0.3* 6.3 2022.2 22.5
Consistent character literal encoding P2316R2 Yes Yes 19.30* Yes Yes 2022.2 Yes
Character sets and encodings P2314R4 10 Yes 19.51* Yes Yes 2022.2 Yes
Extend init-statement (of for loop) to allow alias-declaration P2360R0 12 14 19.50* 14.0.0* 2022.2
Multidimensional subscript operator  (FTM)* P2128R6 12 15 19.42* 14.0.3* 2022.2
Attributes on lambdas P2173R1 9 13 19.44* 13.1.6* 6.6 2022.2 22.5
#warning P2437R1 Yes* Yes 19.50* 15.0.0* 6.5 2023.2 Yes
Remove non-encodable wide character literals and multicharacter wide character literals P2362R3 13 14 19.51* 15.0.0* 6.7 2023.2
Labels at the end of compound statements P2324R2 13 16 19.51* 16.0.0* 6.5 2023.2 23.9
Delimited escape sequences P2290R3 13 15 19.50* 15.0.0* 6.7 2023.2
Named universal character escapes  (FTM)* P2071R2 13 15 19.51* 15.0.0* 6.7 2023.2
Relaxing some constexpr restrictions  (FTM)* P2448R2 13 17 (partial)
19
19.51* 2024.0 (partial)
Simpler implicit move  (FTM)* P2266R3 13 13 19.50* 6.7 2022.2
static operator()  (FTM)* P1169R4 13 16 19.44* 16.0.0* 6.7 2023.2
Requirements for optional extended floating-point types P1467R9 13 N/A 6.4
Class template argument deduction from inherited constructors P2582R1 14 19.51*
Attribute [[assume]] P1774R8 13 19 19.51*
Support for UTF-8 as a portable source file encoding P2295R6 13* 15* 19.0 (Update 2)** 15.0.0* 2023.2
static operator[]  (FTM)* P2589R1 13 16 19.44* 16.0.0* 6.7 2023.2
Permitting static constexpr variables in constexpr functions  (FTM)* P2647R1 13 16 19.51* 16.0.0* 2023.2
Extending the lifetime of temporaries in range-based for loop initializer  (FTM)* P2644R1
P2718R0
CWG2659
15 19 19.51*
DR11: Change scope of lambda trailing-return-type P2036R3
P2579R0
16 17 19.50* 2023.2
DR20: Meaningful exports P2615R1 15 17 (partial) 19.28 (16.8)*
DR20: consteval needs to propagate up  (FTM)* P2564R3 14 17 16.0.0* 6.7 2024.0
DR98: C++ Identifier Syntax using Unicode Standard Annex 31 P1949R7 12 14 19.50* 14.0.0* 6.4 2022.2
DR11: Allow duplicate attributes P2156R1 11 13 19.50* 13.1.6* 6.5 23.9
DR20: Adjusting the value of feature-test macro __cpp_concepts P2493R0 12 19.50* 6.4 23.3
DR98: Relax requirements on wchar_t to match existing practices P2460R2 Yes Yes 19.44* 15.0.0* N/A 2023.2
DR11: Using unknown pointers and references in constant expressions P2280R4 14 20* 19.50*
DR20: The Equality Operator You Are Looking For P2468R2 13 16 19.36* 16.0.0* 2023.2
DR20: char8_t Compatibility and Portability Fix  (FTM)* P2513R4 13 16 19.34* 16.0.0* 2023.2
DR98/11: Clarify reporting of diagnostic directives and allow static_assert of non-value-dependent expressions in a template context CWG2518 13 17 16.0*
(partial)*
19.40*
 

C++23 feature
 

Paper(s)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray

C++23 library features