命名空间
变体
操作

实验性 C++ 特性

来自 cppreference.cn
< cpp

C++ 标准委员会发布实验性 C++ 语言和库扩展,以供未来标准化。

注意:直到 2012 年,这些出版物使用 TR(技术报告)格式。自 2012 年以来,ISO 程序更改为使用 TS(技术规范)格式。

目录

[编辑] TR/TS 规范

ISO 编号 名称 状态 链接,头文件
ISO/IEC TR 18015:2006 C++ 性能技术报告 已发布 2006 (ISO 商店)。

草案: TR18015 (2006-02-15)。

ISO/IEC TR 19768:2007 C++ 库扩展技术报告 已发布 2007-11-15 (ISO 商店)。

草案: N1836 (2005-06-24)
ISO 29124 分离出来,其余部分合并到 C++11。

ISO/IEC 29124:2010 C++ 库扩展以支持数学特殊函数 已发布 2010-09-03 (ISO 商店)。

最终草案: N3060 (2010-03-06)。
已合并到 C++17

特殊函数 (实验性), 特殊函数
ISO/IEC TR 24733:2011 编程语言 C++ 扩展以支持十进制浮点运算 已发布 2011-10-25 (ISO 商店)

草案: N2849 (2009-03-06)。
可能会被未来的 TS 取代或合并到未来的 C++ 修订版中(最近的合并提案是 N3871)。

ISO/IEC TS 18822:2015 C++ 文件系统技术规范 已发布 2015-06-18 (ISO 商店)。最终草案: N4100 (2014-07-04)。

已合并到 C++17

文件系统 (实验性), 文件系统, <filesystem>
ISO/IEC TS 19570:2015 C++ 并行性扩展 已发布 2015-06-24。 (ISO 商店)。最终草案: N4507 (2015-05-05)。

已合并到 C++17。

并行性
ISO/IEC TS 19841:2015 事务内存 TS 已发布 2015-09-16, (ISO 商店)。最终草案: N4514 (2015-05-08)。 事务内存
ISO/IEC TS 19568:2015 C++ 库基础扩展 已发布 2015-09-30, (ISO 商店)。最终草案: N4480 (2015-04-07)。

已合并到 C++17,除了调用特征。

库扩展
ISO/IEC TS 19217:2015 C++ 概念扩展 已发布 2015-11-13 (ISO 商店)。最终草案: N4553 (2015-10-02)。当前草案: P0734R0 (2017-07-14)。

已合并到 C++20(经过修改)。

约束和概念 (实验性), 概念, <concepts>
ISO/IEC TS 19571:2016 C++ 并发扩展 已发布 2016-01-19 (ISO 商店)。最终草案: P0159R0 (2015-10-22)。

部分合并到 C++20。

并发性
ISO/IEC TS 19568:2017 C++ 库基础扩展,版本 2 已发布 2017-03-30 (ISO 商店)。草案: N4617 (2016-11-28)。

部分合并到 C++17 和 C++20。

库扩展 2
ISO/IEC TS 21425:2017 范围 TS 已发布 2017-12-05 (ISO 商店)。草案: N4685 (2017-07-31)。

已合并到 C++20

范围 (实验性), 范围, <ranges>
ISO/IEC TS 22277:2017 协程 TS 已发布 2017-12-05 (ISO 商店)。草案: N4736 (2018-03-31)。最新草案: N4775 (2018-10-07)。

已合并到 C++20

<coroutine>
ISO/IEC TS 19216:2018 网络 TS 已发布 2018-04-24 (ISO 商店)。草案: N4734 (2017-04-04)。最新草案: N4771 (2018-10-08)。
另请参见非 TS 提案
  • 标准安全网络 - P2586R0 (2022-09-13)
  • 用于网络的发送者-接收者接口 - P2762R2 (2023-10-12)
  • 基于 IETF TAPS 的 C++ 标准网络提议方向 - P3185R0 (2024-12-14)
  • 用于创建基于 TAPS 的网络连接的提议 API - P3482R0 (2024-12-14)
网络
ISO/IEC TS 21544:2018 模块 TS 已发布 2018-05-16 (ISO 商店)。最终草案: N4720 (2018-01-29)。

已合并到 C++20

ISO/IEC TS 19570:2018 并行性 TS 版本 2 已发布 2018-11-15 (ISO 商店)。最终草案: N4793 (2018-11-26)。发布后草案: N4808 (2019-03-11)。另请参见非 TS std::simd 提案 下方 并行性 2
ISO/IEC TS 23619:2021 反射 TS 已发布 2021-10-11 (ISO 商店)。草案: N4856 (2020-03-02)。另请参见非 TS 提案 下方 反射
数值 早期开发。草案: P1889R1 (2019-12-27)。
ISO/IEC TS 9922 并发性 TS 版本 2 已发布 2024-10-09 (ISO 商店)。草案: N4956 (2023-07-05)。 并发性 2
ISO/IEC TS 19568:2024 C++ 库基础扩展,版本 3 已发布 2024-08-26 (ISO 商店)。草案: N4948 (2023-05-08)。 库扩展 3
ISO/IEC DTS 12907 事务内存 TS,版本 2 早期开发。草案: N4923 (2022-10-14)。
ISO/IEC NP 19569 数组扩展 TS × 已撤回。废弃草案: N3820 (2013-10-10)。

[编辑] 非 TS 提案

名称 状态 链接,头文件
线性代数 已合并到 C++26。提案: P1673R13 (2023-11-10)。
更多提案
<linalg>
std::execution 已合并到 C++26。提案: P2300R10 (2024-06-28)。
更多提案
  • 系统执行上下文 - P2079R6 (2025-01-13)
  • 用于网络的发送者-接收者接口 - P2762R2 (2023-10-12)
  • 发送者和接收者的成员自定义点 - P2855R1 (2024-02-22)
  • C++ 执行器的事件模型 - P2882R0 (2023-05-11)
  • 发送者算法自定义 - P2999R3 (2023-12-13)
  • std::execution 介绍 - P3090R0 (2024-02-14)
  • C++26 的 std::execution 计划 - P3109R0 (2024-02-12)
  • 改进发送者表达式的诊断 - P3164R3 (2025-01-10)
  • 重新考虑 std::execution::on 算法 - P3175R3 (2024-06-25)
  • 用于完成行为的发送者查询 - P3206R0 (2025-01-13)
  • finallywrite_envunstoppable 发送者适配器 - P3284R2 (2024-11-21)
  • 修复延迟发送者算法自定义 - P3303R1 (2024-06-25)
  • 用于创建执行环境的实用程序 - P3325R5 (2024-11-22)
  • 何时知道 connect 不会抛出异常? - P3388R1 (2025-01-11)
  • std::execution 措辞修复 - P3396R1 (2024-11-19)
  • 启用更高效的基于停止令牌的发送者取消 - P3409R1 (2024-11-17)
  • Win32、Darwin 和 Linux 上的 system_scheduler - P3456R0 (2024-10-15)
  • 总结 std::execution::bulk() 问题 - P3481R1 (2025-01-13)
  • 具有 Constexpr 异常的高质量发送者诊断 - P3557R0 (2025-01-13)
执行 (实验性),
执行,
<execution>
std::inplace_vector 已合并到 C++26。提案: P0843R14 (2024-06-26)。
更多提案
  • inplace_vector - P0843(R7) LEWG 演示文稿 - P2925R0 (2023-06-16)
  • Vector 的方向 - P3147R1 (2024-03-18)
  • 分配器感知 std::inplace_vector - P3160R2 (2024-10-15)
<inplace_vector>
experimental::simd
std::simd
已合并到 C++26。提案: P1928R15 (2024-11-22)。
主要文档(TS ISO/IEC 19570:2018)在上面的 “C++ 并行性扩展 V2” 中描述。
更多提案
数据并行类型 (实验性),
数据并行类型,
<simd>
契约 已合并到 C++26。提案: C++ 契约 - P2900R14 (2025-02-13)
更多提案
  • 发布契约技术规范的提案 - P2659R2 (2022-11-30)
  • 提议的契约 TS - P2660R0 (2022-10-14)
  • 对契约 TS 的杂项修正 - P2661R0 (2022-10-15)
  • C++ 契约:优先考虑安全性 - P2680R1 (2022-12-15)
  • C++ 中契约的拟议计划 - P2695R1 (2023-02-09)
  • 以条件为中心的契约语法提案 - P2737R0 (2022-12-30)
  • C++ 契约:优先考虑安全性 - 演示幻灯片 - P2743R0 (2022-12-13)
  • 检查契约的评估 - P2751R1 (2023-02-14)
  • 完整契约设施的大胆计划 - P2755R1 (2024-04-11)
  • 契约 MVP 背后的想法 - P2817R0 (2023-03-05)
  • 支持定义时常量风格的契约提案 - P2829R0 (2023-04-13)
  • 契约 MVP 的契约违规处理语义 - P2852R0 (2023-04-24)
  • Lakos 规则:窄契约和 noexcept 本质上是不兼容的 - P2861R0 (2023-05-19)
  • 契约语法的要求 - P2885R3 (2023-10-05)
  • lambda 上的契约 - P2890R2 (2023-12-13)
  • 契约的常量求值 - P2894R2 (2024-01-11)
  • 契约 MVP 的未解决设计问题 - P2896R0 (2023-08-22)
  • C++ 契约 - 基本原理 - P2899R0 (2025-01-13)
  • 契约开放设计问题的原则性方法 - P2932R3 (2024-01-16)
  • 契约的类似属性的语法 - P2935R4 (2023-11-05)
  • 契约必须避免泄露敏感信息 - P2947R0 (2023-07-20)
  • 用于 P2861R0 的幻灯片:窄契约和 noexcept 本质上是不兼容的 - P2949R0 (2023-07-14)
  • 契约和虚函数用于契约 MVP - P2954R0 (2023-08-03)
  • 契约和协程 - P2957R2 (2024-10-14)
  • 契约的自然语法 - P2961R2 (2023-11-08)
  • 契约语法选择概述 - P3028R0 (2023-11-05)
  • 防止契约中的修改 - P3071R1 (2023-12-17)
  • 从契约 MVP 中删除 evaluation_undefined_behaviorwill_continue - P3073R0 (2024-01-27)
  • ignoreobserve 是否应该存在于契约的常量求值中? - P3079R0 (2024-01-11)
  • C++ 契约:对虚函数的支持 - P3097R0 (2024-04-15)
  • C++ 契约:后置条件捕获 - P3098R1 (2024-12-11)
  • 未定义和错误行为是契约违规 - P3100R1 (2024-10-16)
  • 东京对契约的技术修复 - P3119R1 (2024-05-09)
  • 契约 MVP 的虚函数上的契约 - P3165R0 (2024-02-27)
  • 继承的契约 - P3169R0 (2024-04-14)
  • 契约测试支持 - P3183R1 (2024-05-22)
  • 用于 LEWG 演示文稿 P2900R6 的幻灯片:C++ 契约 - P3189R0 (2024-03-19)
  • 用于 LEWG 演示文稿 P2900R7 的幻灯片:C++ 契约 - P3190R0 (2024-03-20)
  • 对东京 EWG 关于契约 MVP 的投票 (P2900R6) 的回应 - P3197R0 (2024-04-12)
  • 东京 LEWG 会议关于契约 MVP 的要点 - P3198R0 (2024-03-29)
  • 为什么需要契约? - P3204R0 (2024-11-07)
  • sort() 的契约 - P3212R0 (2024-07-03)
  • C++ 契约:命名 Louis 语义 - P3226R0 (2024-04-12)
  • C++ 契约:修复契约违规处理 API - P3227R1 (2024-10-24)
  • C++ 契约:重新审视契约检查省略和重复 - P3228R1 (2024-05-21)
  • 使错误行为与契约兼容 - P3229R0 (2025-01-13)
  • 命名契约语义的备选提案 - P3238R0 (2024-05-06)
  • 引入新名称时,模式匹配和契约的统一语法 - P3249R0 (2024-05-22)
  • 关于函数指针的 C++ 契约 - P3250R0 (2024-05-07)
  • C++ 契约和协程 - P3251R0 (2024-05-07)
  • 使 contract_assert 的谓词更规则 - P3257R0 (2024-04-26)
  • 在 TS 中发布契约 - P3265R3 (2024-05-28)
  • C++ 契约的方法 - P3267R1 (2024-05-22)
  • 关于当前代码的 C++ 契约常量化挑战 - P3268R0 (2024-05-07)
  • 不要将契约作为 TS 发布 - P3269R0 (2024-05-21)
  • 关于 contract_assert 的重复、省略和常量化 - P3270R0 (2024-05-22)
  • 函数使用类型(函数指针的契约) - P3271R1 (2024-10-15)
  • P2900 优于契约 TS - P3276R0 (2024-05-18)
  • 契约:保护保护者 - P3285R0 (2024-05-15)
  • 将现有断言与契约集成 - P3290R2 (2024-09-06)
  • C++26 需要契约检查 - P3297R1 (2024-06-21)
  • C++ 契约中传统断言设施集成的选择性加入方法 - P3311R0 (2024-05-22)
  • 编译时解析的契约 - P3317R0 (2024-05-22)
  • 契约与工具的交互 - P3321R0 (2024-07-12)
  • 函数指针上的契约断言 - P3327R0 (2024-10-16)
  • 契约评估期间的可观察检查点 - P3328R0 (2024-06-14)
  • BDE 契约的使用经验 - P3336R0 (2024-06-23)
  • 契约 - 我们在这里做什么(EWG 演示文稿) - P3343R0 (2024-06-25)
  • 关于契约的虚函数(EWG - P3097 的演示文稿) - P3344R0 (2024-06-28)
  • 类不变量和契约检查理念 - P3361R1 (2024-07-23)
  • 契约的静态分析和“安全性”,P2900P2680/P3285 - P3362R0 (2024-08-13)
  • 契约断言与静态分析和“安全性” - P3376R0 (2024-10-14)
  • 使用 P2900 对契约进行静态分析 - P3386R1 (2024-11-25)
  • 协程上的契约断言 - P3387R0 (2024-10-09)
  • 使用标签指定契约断言属性 - P3400R0 (2025-01-09)
  • 改进从契约谓词抛出的异常的处理 - P3417R0 (2024-10-16)
  • 契约实施者报告 - P3460R0 (2024-10-16)
  • 标准库强化 - P3471R2 (2024-12-14)
  • 常量化不应成为 MVP(Minimal Viable Product,最小可行产品)的一部分 - P3478R0 (2024-10-16)
  • 探索严格的契约谓词 - P3499R0 (2025-01-13)
  • 契约“安全”吗? - P3500R0 (2025-01-13)
  • 用于 P2900R11 的幻灯片 - C++ 契约 - P3502R0 (2024-11-18)
  • P2900 仍然没有为 C++26 做好准备 - P3506R0 (2025-01-13)
  • 违反处理程序与 noexcept - P3541R1 (2025-01-07)
  • 默认核心语言契约 - P3558R0 (2025-01-12)
  • 契约相关问题 - P3573R0 (2025-01-12)
  • 要求一个非抛出默认契约违反处理程序 - P3577R0 (2025-01-12)
  • 观察到契约违反?跳过后续断言! - P3582R0 (2025-01-13)
  • 契约、类型和函数 - P3583R0 (2025-01-13)
契约断言,
函数契约说明符,
contract_assert,
pre, post,
<contracts>
模式匹配 早期开发。草案 P1371R3 (2020-09-15)。
更多提案
  • 使用 isas 的模式匹配 - P2392R3 (2024-10-16)
  • 模式匹配:match 表达式 - P2688R5 (2025-01-13)
  • 用于模式匹配的 switch - P2940R0 (2022-04-18)
  • 模式匹配的标识符 - P2941R0 (2022-02-24)
  • 后置条件模式匹配 - P3210R2 (2024-09-10)
  • 引入新名称时,模式匹配和契约的统一语法 - P3249R0 (2024-05-22)
  • PM 的更简单表示法 - P3332R0 (2024-06-18)
  • P2688R2 幻灯片 - 模式匹配:match 表达式 - P3476R0 (2024-10-16)
  • 模式匹配:开放和类型自定义点 - P3521R0 (2024-12-17)
  • 模式匹配:*variant-like* 和 'std::expected' - P3527R1 (2025-01-13)
  • 模式匹配 - P3572R0 (2025-01-12)
反射 主要文档 (ISO/IEC TS 23619:2021) 在上面的 Reflection TS 中描述。
更多提案
  • C++ 中的可扩展反射 - P1240R2 (2022-01-14)
  • 扩展语句 - P1306R3 (2024-10-14)
  • 属性反射 - P1887R1 (2020-01-13)
  • 元编程 - P2237R0 (2020-10-15)
  • 使用基于值的反射的 Python 绑定 - P2911R1 (2023-10-13)
  • C++26 的反射 - P2996R9 (2025-01-13)
  • 使用反射替换用于生成 JS 绑定的元语言 - P3010R0 (2023-10-13)
  • 与反射的 ABI 比较 - P3095R0 (2024-02-15)
  • C++26 反射中的函数参数反射 - P3096R5 (2024-12-14)
  • 反射的生成扩展 - P3157R1 (2024-05-22)
  • 反射的语法 - P3381R0 (2024-09-17)
  • 属性反射 - P3385R3 (2025-01-07)
  • 反射的注解 - P3394R1 (2025-01-13)
  • 反射语法选项摘要 - P3419R0 (2024-10-11)
  • 模板的反射 - P3420R1 (2025-01-13)
  • 反射头文件应最小化标准库依赖 - P3429R1 (2024-11-29)
  • 反射和元编程 - P3435R0 (2024-10-14)
  • 提议的默认原则:反射 C++,生成 C++ - P3437R1 (2024-11-07)
  • 关于 SG21 2024 流程的反射 - P3443R0 (2024-10-14)
  • 反射访问控制的建议 - P3451R0 (2024-10-15)
  • 关于反射和访问的思考 - P3493R0 (2024-11-10)
  • 使用反射建模访问控制 - P3547R0 (2025-01-09)
  • 反射中的错误处理 - P3560R0 (2025-01-12)
  • 从反射中分离 define_aggregate - P3569R0 (2025-01-11)
  • 重新考虑 C++26 的反射访问 - P3587R0 (2025-01-13)
反射 (实验性)
2D 图形 早期开发。草案 P0267R10 (2019-10-07)。
图库 早期开发。
更多提案
  • 图库:概述 - P3126R2 (2024-08-05)
  • 图库:算法 - P3128R2 (2024-09-12)
  • 图库:图容器接口 - P3130R2 (2024-08-05)
  • 图库:图容器 - P3131R2 (2024-08-05)
统计 早期开发。
更多提案
概况 早期开发。
更多提案
  • 安全概况:ISO 标准 C+ 中的类型和资源安全编程 - P2816R0 (2023-02-16)
  • 初始概况的具体建议 - P3038R0 (2023-12-16)
  • 核心安全概况:规范、可采用性和影响 - P3081R0 (2024-10-16)
  • 概况开发框架 - P3274R0 (2024-05-10)
  • 验证类初始化的安全概况 - P3402R1 (2024-10-15)
  • 概况失效 - 消除悬空指针 - P3446R0 (2024-10-14)
  • 概况语法 - P3447R0 (2024-10-14)
  • 对核心安全概况的回应 (P3081R0) - P3543R0 (2024-12-17)
  • 概况的诸多问题 - P3586R0 (2025-01-13)
  • C++ 概况:框架 - P3589R0 (2025-01-13)

[编辑] 另请参阅

C 文档 用于 实验性 C 特性

[编辑] 外部链接

1.  PL22.16/WG21 文档列表 - 2016-2025 年的所有 C++ 委员会文档(TS/提案)。
2.  2025 年的 JTC1/SC22/WG21 提案(邮件列表).