C 编译器支持
< c
| 我们尽可能努力维护这个页面,但仍可能缺少最新发布的编译器的版本信息。如果你发现有过时的内容的话,请帮助我们来更新它吧! |
C23 特性
注意:随着 C23/2x 标准进程推进,这个页面可能过时。
c23 核心语言特性
| 本节未完成 原因:status for apple clang and other compilers supporting c2x |
| C23 功能特性 |
提案 |
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
IBM XLC++
|
Sun/Oracle C++
|
Embarcadero C++ Builder
|
Cray
|
Nvidia HPC C++
(前 Portland Group/PGI) |
Nvidia nvcc
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 单参数 _static_assert | N2265 | 9 | 9 | 是 | 是 | 6.5 | 2021.1.2 (clang based) | |||||||
[[nodiscard]] |
N2267 | 10 | 9 | 是 | 6.4 | 2021.1.2 (clang based) | ||||||||
[[maybe_unused]] |
N2270 | 10 | 9 | 是 | 6.4 | 2021.1.2 (clang based) | ||||||||
[[deprecated]] |
N2334 | 10 | 9 | 是 | 6.4 | 2021.1.2 (clang based) | ||||||||
| 属性 | N2335 N2554 |
10 | 9 | 是 | 6.4 | 2021.1.2 (clang based) | ||||||||
| ieee 754 十进制浮点类型 | N2341 | 4.2 (partial)* | 13.0 (partial)* | |||||||||||
[[fallthrough]] |
N2408 | 10 | 9 | 是 | 6.4 | 2021.1.2 (clang based) | ||||||||
u8 字符常量 |
N2418 | 10 | 15 | 6.5 | 2022.2 | |||||||||
| 移除无原型的函数定义 | N2432 | 10 | 15 | 2022.2 | ||||||||||
有消息(message)的[[nodiscard]] |
N2448 | 11 | 10 | 是 | 6.4 | 2021.1.2 (clang based) | ||||||||
| 函数定义中的匿名参数 | N2480 | 11 | 11 | 是 | 6.4 | 2021.1.2 (clang based) | ||||||||
| 声明和语句块结束前的标签 | N2508 | 11 | 16 | partial* | 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 based) | ||||||||
| 允许重复属性 | N2557 | 11 | 13 | 是 | 6.5 | 2021.4 (clang-based | ||||||||
| ieee 754 交换和扩展类型 | N2601 | 7 (partial)* | 6 (partial)* | partial* | ||||||||||
| 数位分隔符 | N2626 | 12 | 13 | 19.0 (2015)** | 是 | 6.5 | 18.0* | |||||||
#elifdef和#elifndef |
N2645 | 12 | 13 |
13.1.6* |
6.5 | 2021.4 | ||||||||
u8 字符串字面量的类型修改 |
n2653 | |||||||||||||
标签的[[maybe_unused]] |
N2662 | 11 | 16 | 6.5 | 2022.2 | |||||||||
| #warning | N2686 | 是 | 是 | 是 | 6.5 | 是 | ||||||||
| 位精确整数类型 (_bitint) | N2763 | 15 | 6.5 | 2022.2 | ||||||||||
[[noreturn]] |
N2764 | 13 | 15 | 6.5 | 2022.2 | |||||||||
| 位精确整数常量后缀 | N2775 | 15 | 2022.2 | |||||||||||
| 预处理条件中的__has_include | N2799 | 5 | 是 | 19.11* | 是 | 6.5 | 18.0 | |||||||
| 标识符语法,使用统一码标准附件31 | n2836 | 13 | 15 | 6.5 | 2022.2 | |||||||||
| 移除无原型的函数声明 | n2841 | 13 | 15 | 2022.2 |
|
|||||||||
| 空初始化 | n2900 | partial* | partial* | partial* | partial* | partial* |
|
|||||||
| typeof 和 typeof_unqual | n2927 N2930 |
partial* 13 |
partial* 16 |
partial* | partial* | partial* | partial* | |||||||
| 新的关键字拼写 | N2934 | 13 | 16 | 6.5 | ||||||||||
预定义 true 和 false |
N2935 | 13 | 15 | 2022.2 | ||||||||||
[[unsequenced]] 和 [[reproducible]] |
n2956 | |||||||||||||
| 放宽对变长参数列表的要求 | N2975 | 13 | 16 | 6.5 | 2023.1 | |||||||||
| 对象定义中的类型接口 | n3007 | 13 | ||||||||||||
| #embed | n3017 | |||||||||||||
| constexpr对象 | n3018 | 13 | ||||||||||||
| 改善普通枚举 | n3029 | 13 | ||||||||||||
| 增强枚举 | n3030 | 13 | 可能 | |||||||||||
__va_opt__ |
n3033 | 8 | 12 | 6.5 | ||||||||||
| 复合字面值的存储说明符 | n3038 | 13 | ||||||||||||
| nullptr | n3042 | 13 | 16 | |||||||||||
| C23 功能特性 |
提案 |
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
IBM XLC++
|
Sun/Oracle C++
|
Embarcadero C++ Builder
|
Cray
|
Nvidia HPC C++
|
Nvidia nvcc
|
c23 库特性
| 本节未完成 原因:C标准库的差异列表 |
引用
各编译器厂商的兼容性检查单文档(这些通常比以上表格更能反映最新的情况)
- GCC
暂无文档
- Clang
- Microsoft Visual Studio
- Apple Clang
暂无文档
- Intel C++ (更新于 2018-11 )
暂无文档
- EDG eccp
暂无文档
- Sun/Oracle C++
暂无文档
- IBM XL C++
暂无文档
- Embarcadero C++ Builder
暂无文档
- Cray
暂无文档
- Nvidia HPC C++ (Portland Group) (PGI)
暂无文档
- Media nvcc
暂无文档