命名空间
变体
操作

C 编译器支持

来自 cppreference.com
< c

内容

[编辑] C23 特性

请注意,随着 C23/2x 标准草案的演变,此列表可能会发生变化。

[编辑] C23 核心语言特性


C23 特性

 
论文

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XL C++
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
_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
部分部分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++
IBM XL C++
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc

[编辑] C23 库特性

[编辑] C99 特性

[编辑] C99 核心语言特性

C99 特性

 
论文

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XL C++
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
标识符 中使用通用字符名 N/A 3.1
增加翻译限制 N590 0.9 N/A
// 注释 N644 2.7
restrict 指针 N448 2.95 部分*
增强算术类型 N815
N601
N620
N638
N657
N694
N809
部分 可能
灵活数组成员 N/A 3.0
可变长度数组 (VLA) 类型 N683 0.9
可变修饰 (VM) 类型 N2778 N/A
指定初始化器 N494 3.0
非常量初始化器 N/A 1.21 N/A
幂等 cvr 限定符 N505 3.0 N/A
枚举器列表 中的尾随逗号 N/A 0.9
十六进制浮点常量 N308 2.8
复合字面量 N716 3.1
浮点环境 N/A 部分 部分
要求对带符号整数类型的除法进行截断 N617 0.9 N/A
main() 函数 中隐式return 0; N/A
混合顺序的声明和语句 N740 3.0
初始化语句for 循环中 N/A
inline 函数 N741 4.3
预定义变量__func__ N611 2.95
Cvr 限定符和static 在函数声明中的[] N/A 3.1
可变参数宏 N707 2.95
_Pragma 预处理器运算符 N634 3.0 部分*
浮点计算的标准编译指示 N631
N696
 

C99 特性
 

论文
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XL C++
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc


[编辑] 另请参阅

C++ 文档 有关 编译器支持