C 编译器支持

来自cppreference.com
< c


目录

[编辑] C23 特性

注意:随着 C23/2x 标准进程推进,这个页面可能过时。

[编辑]C23 核心语言特性

C23 功能特性

 
提案

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
无消息的 static_assertN22659 9 6.5 2021.1.2 (基于 clang)
[[nodiscard]]N226710 9 6.4 2021.1.2 (基于 clang)
[[maybe_unused]]N227010 9 6.4 2021.1.2 (基于 clang)
[[deprecated]]N233410 9 6.4 2021.1.2 (基于 clang)
属性N2335
N2554
10 9 6.4 2021.1.2 (基于 clang)
IEEE 754 十进制浮点数类型 N23414.2 (部分)*
12
13.0 (部分)*
[[fallthrough]]N240810 9 6.4 2021.1.2 (基于 clang)
u8 字符常量N241810 15 6.5 2022.2
移除无原型的函数定义N243210 15 2022.2
有消息的 [[nodiscard]]N244811 10 6.4 2021.1.2 (基于 clang)
函数定义中的匿名形参 N248011 11 6.4 2021.1.2 (基于 clang)
声明和语句块结束前的标号N250811 16 部分*6.5 17.0*
二进制整数常量N25494.3*
11
2.9*
9
19.0 (2015)**6.5 11.0*
预处理条件中的 __has_c_attributeN255311 9 6.5 2021.1.2 (基于 clang)
允许重复属性 N255711 13 6.5 2021.4 (基于 clang)
IEEE 754 交换和扩展类型 N26017 (部分)*
14
6 (部分)*部分*
数位分隔符 N262612 13 19.0 (2015)**6.5 18.0*
#elifdef#elifndefN264512 13 19.40*13.1.6*6.5 2021.4
u8 字符串字面量的类型修改 N265313
用于标号的 [[maybe_unused]]N266211 16 6.5 2022.2
#warningN26866.5
位精确整数类型 (_BitInt) N276314 (部分)*15 6.5 2022.2
[[noreturn]]N276413 15 6.5 2022.2
位精确整数常量的后缀 N277514 15 2022.2
预处理条件中的 __has_includeN27995 19.11*6.5 18.0
标识符语法,使用 Unicode 标准附件 31 N283613 15 6.5 2022.2
移除无原型的函数声明N284113 15 2022.2
空初始化式N2900部分*
13
部分*部分*部分*部分*
typeoftypeof_unqualN2927
N2930
部分*
13
部分*
16
19.39*部分*部分*部分*部分*
新的关键词拼写 N293413 16 6.5
预定义 truefalseN293513 15 2022.2
[[unsequenced]][[reproducible]]N295615
放宽对变长参数列表的要求 N297513 16 6.5 2023.1
对象定义中的类型推导 N300713 18
#embedN301715 19
constexpr 对象 N301813 19
改善普通枚举 N302913 20*
有固定底层类型的枚举 N303013 20*
__VA_OPT__N30338
13
12 19.39*6.5
复合字面值的存储说明符 N303813
nullptrN304213 16
 

C23 功能特性
 

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

[编辑]C23 库特性

[编辑] C99 特性

[编辑]C99 核心语言特性

C99 功能特性

 
提案

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
标识符中的通用字符名 3.1
提高翻译极限N5900.9 不适用
//注释N6442.7
restrict 指针 N4482.95 部分*
增强算术类型N815
N601
N620
N638
N657
N694
N809
部分 可能
灵活的数组成员 3.0
变长数组 (VLA) 类型 N6830.9
可变修改 (VM) 类型 N2778不适用
定名初始化式 N4943.0
非常量初始化式 1.21 不适用
幂等 cvr 限定符 N5053.0 不适用
枚举项列表 中的尾部逗号 0.9
十六进制浮点数常量N3082.8
复合字面量N7163.1
浮点数环境 部分 部分
规定有符号整数类型的除法进行截断 N6170.9 不适用
main() 函数中的隐式 return0;
混合安排声明和语句 N7403.0
for 循环中的 初始化语句
inline 函数 N7414.3
预定义变量 __func__N6112.95
函数声明中的 [] 之中的 cvr 限定符和 static3.1
变参宏N7072.95
_Pragma 预处理器运算符 N6343.0 部分*
浮点数求值的标准语用(pragma) N631
N696
 

C99 功能特性
 

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

[编辑] 参阅

编译器支持C++ 文档
close