C++29 - cppreference.com
来自cppreference.com
下一代 C++ 标准。
参见:C++29 的当前 IS 日程表 (2026-04-13)。
新的语言特性
新的库特性
新模块
新标头
过时特性
已移除特性
已弃用特性
缺陷报告
编译器支持
主页面:C++29 编译器支持
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:移除协程承诺返回函数的互斥性 (FTM)* | P3950R1 | ||||||||||
| DR:根据新 Unicode 建议调整标识符 | P3658R1 | ||||||||||
| DR:显式 lambda 捕获以词法顺序声明并初始化 | P3847R1 | 3.1 | |||||||||
| DR:允许模板的 C 语言连接 | P2243R0 | ||||||||||
| DR:澄清浮点数溢出的行为 | P3899R3 | ||||||||||
| DR:非确定性指针溯源 | P2434R5 | ||||||||||
| DR:解决原子访问和 volatile 访问中的指针生命周期结束捣毁(lifetime-end zap)问题。 | 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* |
* - 在版本号上停留可以查看注记 * 查看其他注记
DRnn - 在 "DR" 后的数字 nn 表示应用该缺陷报告的目标 C++ 修订版本,例如 DR20 → C++20。