Compiler support for C++20
From cppreference.com
< cpp | compiler support
* - 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.
[edit] C++20 core language features
C++20 feature |
Paper(s) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (ex PGI)* |
Nvidia nvcc |
Cray |
|
---|---|---|---|---|---|---|---|---|---|---|---|
Allow Lambda capture [=, this] | P0409R2 | 8 | 6 | 19.22* | 10.0.0* | 5.1 | 2021.1 | 20.7 | 12.0 | 11.0 | |
__VA_OPT__
|
P0306R4 P1042R1 |
8 (partial)* 10 (partial)* 12 |
9 | 19.25* | 11.0.3* | 5.1 | 2021.1 | 20.7 | 12.0 | 11.0 | |
Designated initializers (FTM)* | P0329R4 | 4.7 (partial)* 8 |
3.0 (partial)* 10 |
19.21* | 12.0.0* | 5.1 | 2021.1 | 20.7 | 12.0 | 11.0 | |
template-parameter-list for generic lambdas (FTM)* | P0428R2 | 8 | 9 | 19.22* | 11.0.0* | 5.1 | 2021.1 | 20.7 | 12.0 | 11.0 | |
Default member initializers for bit-fields | P0683R1 | 8 | 6 | 19.25* | 10.0.0* | 5.1 | 2021.1 | 20.7 | 12.0 | 11.0 | |
Initializer list constructors in class template argument deduction | P0702R1 | 8 | 6 | 19.14* | Yes | 5.0 | 2021.1 | 20.7 | 12.0 | 11.0 | |
const&-qualified pointers to members | P0704R1 | 8 | 6 | 19.0 (2015)* | 10.0.0* | 5.1 | 2021.1 | 20.7 | 12.0 | 11.0 | |
Concepts (FTM)* | P0734R0 | 5* 10 |
10 | 19.23* (partial)* 19.30* |
12.0.0* (partial) | 6.1 | 2023.1* | 20.11 | 12.0 | 11.0 | |
Lambdas in unevaluated contexts | P0315R4 | 9 | 13 (partial)* 14 (partial)* 17 |
19.28 (16.8)* | 13.1.6* (partial) | 6.2 | 2023.1 (partial) 2024.0 |
20.7 | 12.0 | ||
Three-way comparison operator (FTM)* | P0515R3 | 10 | 8 (partial) 10 |
19.20* | 12.0.0* | 5.1 | 2021.1 | 20.7 | 12.0 | 11.0 | |
DR11: Simplifying implicit lambda capture | P0588R1 | 8 | 19.24* | 5.1 | 2021.1 | 20.7 | 12.0 | ||||