C23 的编译器支持

来自cppreference.com


[编辑] C23 核心语言特性

C23 功能特性

 
提案

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
无消息的 static_assert N2265 9 9 6.5 2021.1.2 (基于 clang)
[[nodiscard]] N2267 10 9 6.4 2021.1.2 (基于 clang)
[[maybe_unused]] N2270 10 9 6.4 2021.1.2 (基于 clang)
[[deprecated]] N2334 10 9 6.4 2021.1.2 (基于 clang)
属性 N2335
N2554
10 9 6.4 2021.1.2 (基于 clang)
IEEE 754 十进制浮点数类型 N2341 4.2 (部分)*
12
13.0 (部分)*
[[fallthrough]] N2408 10 9 6.4 2021.1.2 (基于 clang)
u8 字符常量 N2418 10 15 6.5 2022.2
移除无原型的函数定义 N2432 10 15 2022.2
有消息的 [[nodiscard]] N2448 11 10 6.4 2021.1.2 (基于 clang)
函数定义中的匿名形参 N2480 11 11 6.4 2021.1.2 (基于 clang)
声明和语句块结束前的标号 N2508 11 16 部分* 6.5 17.0*
二进制整数常量 N2549 4.3*
11
2.9*
9
19.0 (2015)** 6.5 11.0*
预处理条件中的 __has_c_attribute N2553 11 9 6.5 2021.1.2 (基于 clang)
允许重复属性 N2557 11 13 6.5 2021.4 (基于 clang)
IEEE 754 交换和扩展类型 N2601 7 (部分)*
14
6 (部分)* 部分*
数位分隔符 N2626 12 13 19.0 (2015)** 6.5 18.0*
#elifdef#elifndef N2645 12 13 19.40* 13.1.6* 6.5 2021.4
u8 字符串字面量的类型修改 N2653 13
用于标号的 [[maybe_unused]] N2662 11 16 6.5 2022.2
#warning N2686 6.5
位精确整数类型 (_BitInt) N2763 14 (部分)* 15 6.5 2022.2
[[noreturn]] N2764 13 15 6.5 2022.2
位精确整数常量的后缀 N2775 14 15 2022.2
预处理条件中的 __has_include N2799 5 19.11* 6.5 18.0
标识符语法,使用 Unicode 标准附件 31 N2836 13 15 6.5 2022.2
移除无原型的函数声明 N2841 13 15 2022.2
空初始化式 N2900 部分*
13
部分* 部分* 部分* 部分*
typeoftypeof_unqual N2927
N2930
部分*
13
部分*
16
19.39* 部分* 部分* 部分* 部分*
新的关键词拼写 N2934 13 16 6.5
预定义 truefalse N2935 13 15 2022.2
[[unsequenced]][[reproducible]] N2956 15
放宽对变长参数列表的要求 N2975 13 16 6.5 2023.1
对象定义中的类型推导 N3007 13 18
#embed N3017 15 19
constexpr 对象 N3018 13 19
改善普通枚举 N3029 13 20*
有固定底层类型的枚举 N3030 13 20*
__VA_OPT__ N3033 8
13
12 19.39* 6.5
复合字面值的存储说明符 N3038 13
nullptr N3042 13 16
 

C23 功能特性
 

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

[编辑] C23 库特性