C++29 编译器支持
来自 zh.cppreference.net
* - 将鼠标悬停在标有星号 * 的单元格上可查看附加弹出注释。
DRnn - “DR”后的数字nn表示缺陷报告所针对的目标C++修订版本,例如DR20 → C++20。
C++29 核心语言特性
| C++29 特性 |
提案 |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (ex PGI)* |
Nvidia nvcc |
Cray |
|
|---|---|---|---|---|---|---|---|---|---|---|---|
#embed 偏移参数 (FTM)*
|
P3540R3 | ||||||||||
| 合约 用于 虚函数 (FTM)* | P3097R3 | ||||||||||
| 包索引 用于模板 (FTM)* | P3670R4 | ||||||||||
| 指定初始化器 用于基类 (FTM)* | P2287R6 | ||||||||||
| 具有抛出异常规范的解分配函数为不良形式 | P3424R2 | ||||||||||
| 条件 noexcept 说明符在 复合要求 (FTM)* | P3822R2 | ||||||||||
| 默认后缀递增和递减运算符函数 | P3668R4 | ||||||||||
| 对默认赋值运算符函数添加限制 | P2953R5 | ||||||||||
| DR26:仅 consteval 值 (FTM)* | P4101R1 | ||||||||||
| DR23:允许虚构和缩写 在 具名通用字符转义 | P3733R1 | ||||||||||
| DR20:移除互斥性 对于 协程 promise 返回函数 (FTM)* | P3950R1 | ||||||||||
| DR:根据新的 Unicode 建议调整标识符 | P3658R1 | ||||||||||
| DR: 显式 lambda 捕获 按词法顺序声明和初始化 | P3847R1 | 3.1 | |||||||||
| DR:允许模板的 C 语言链接 | P2243R0 | ||||||||||
| DR:澄清浮点溢出的行为 | P3899R3 | ||||||||||
| DR:非确定性指针来源 | P2434R5 | ||||||||||
| DR:解决原子和 volatile 访问的指针生命周期结束清零 | P2414R12 | ||||||||||
| DR:定义无效指针的加载和存储操作 | P3347R6 | ||||||||||
| C++29 特性 |
提案 |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (ex PGI)* |
Nvidia nvcc |
Cray |
C++29 库特性
| C++29 特性 |
提案 |
GCC libstdc++ |
Clang libc++ |
MSVC STL |
Apple Clang* |
|
|---|---|---|---|---|---|---|
| 更好的 map 容器查找函数 (FTM)* | P3091R6 | |||||
| 指针标记 (FTM)* | P3125R6 | |||||
| 线程属性 (FTM)* | P2019R9 | |||||
| 危险指针批次 (FTM)* | P3428R4 | |||||
| 位排列 (FTM)* (FTM)* | P3104R6 P3772R2 |
|||||
| std::shl 和 std::shr (FTM)* (FTM)* | P3793R2 | |||||
| std::mdspan 复制和填充操作 (FTM)* | P3242R4 | |||||
| std::simd::iota (FTM)* | P3319R6 | |||||
| std::expected::has_error() (FTM)* | P3798R1 | |||||
| view_interface::at() (FTM)* | P3052R2 | |||||
| std::formatter<std::error_code> | P3395R6 | |||||
| 修复默认浮点表示在 std::to_chars (FTM)* | P3505R4 | |||||
| 要求 std::intptr_t 和 std::uintptr_t | P3248R5 | |||||
| 弃用 I/O 流中的有符号字符类型 | P3154R3 | |||||
| DR26:恢复字符串字面量支持在 std::constant_wrapper (FTM)* | P4206R0 | 17 | ||||
| C++29 特性 |
提案 |
GCC libstdc++ |
Clang libc++ |
MSVC STL |
Apple Clang* |