命名空间
变体
操作

实验性 C++ 功能

来自 cppreference.com
< 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)
网络
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 DTS 9922 并发 TS 版本 2 早期开发。草案:N4956 (2023-07-05). 并发 2
ISO/IEC DTS 19568 C++ 库基础扩展,版本 3 早期开发。草案: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).
更多提案
  • 将线性代数支持添加到 C++ 标准库的提案 - P1385R7 (2022-10-15)
  • BLAS 演化标准 C++ 线性代数库 - P1674R2 (2022-05-15)
  • 在 2023 年 Issaquah 的 LEWG 会议上介绍 P1385R7 - P2802R0 (2023-02-09)
  • 通过优化非复数类型的值类型 linalg::conjugated 来修复 C++26 - P3050R2 (2024-08-13)
  • 通过使 对称厄米特 秩 k 和秩 2k 更新与 BLAS 一致来修复 C++26 - P3371R2 (2024-10-14)
<linalg>
std::execution 已转发至 LWG,措辞正在进行中。

已合并至 C++26。提案:P2300R10 (2024-06-28)。

更多提案
  • 系统执行上下文 - P2079R5 (2024-10-16)
  • 用于网络的发送方-接收方接口 - 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)
  • 改进发送方表达式诊断 - P3164R0 (2024-03-01)
  • 重新考虑 std::execution::on 算法 - P3175R3 (2024-06-25)
  • finallywrite_envunstoppable 发送方适配器 - P3284R1 (2024-07-16)
  • 修复惰性发送方算法自定义 - P3303R1 (2024-06-25)
  • 用于创建执行环境的实用程序 - P3325R3 (2024-07-23)
  • 何时知道 connect 不会抛出异常? - P3388R0 (2024-09-10)
  • std::execution 措辞修复 - P3396R0 (2024-09-16)
  • 启用更有效的基于停止令牌的发送方取消 - P3409R0 (2024-10-16)
  • Win32、Darwin 和 Linux 上的 system_scheduler - P3456R0 (2024-10-15)
  • 总结 std::execution::bulk() 问题 - P3481R0 (2024-10-16)
执行<execution>
std::inplace_vector 已合并至 C++26。提案:P0843R14 (2024-06-26)。
更多提案
  • inplace_vector - P0843(R7) LEWG 演示 - P2925R0 (2023-06-16)
  • 矢量的方向 - P3147R1 (2024-03-18)
  • 一个分配器感知的 std::inplace_vector - P3160R2 (2024-10-15)
<inplace_vector>
模式匹配 早期开发。草案 P1371R3 (2020-09-15)。
更多提案
  • 使用 isas 进行模式匹配 - P2392R3 (2024-10-16)
  • 模式匹配:match 表达式 - P2688R3 (2024-10-16)
  • 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)
反射 主文档(ISO/IEC TS 23619:2021)在上面的 反射 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 的反射 - P2996R7 (2024-10-13)
  • 使用反射替换用于生成 JS 绑定的元语言 - P3010R0 (2023-10-13)
  • 与反射的 ABI 比较 - P3095R0 (2024-02-15)
  • 用于 C++26 的反射中的函数参数反射 - P3096R3 (2024-09-15)
  • 用于反射的生成扩展 - P3157R1 (2024-05-22)
  • 反射语法 - P3381R0 (2024-09-17)
  • 属性反射 - P3385R1 (2024-10-15)
  • 用于反射的注释 - P3394R0 (2024-10-14)
  • 反射语法选项摘要 - P3419R0 (2024-10-11)
  • 模板的反射 - P3420R0 (2024-10-16)
  • 反射头文件应尽量减少对标准库的依赖 - P3429R0 (2024-10-16)
  • 反射和元编程 - P3435R0 (2024-10-14)
  • 建议的默认原则:反射 C++,生成 C++ - P3437R0 (2024-10-16)
  • 关于 SG21 2024 进程的反射 - P3443R0 (2024-10-14)
  • 关于反射访问控制的建议 - P3451R0 (2024-10-15)
反射
std::simd 主文档(TS ISO/IEC 19570:2018)在上面“C++ 并行扩展 V2”中描述。
更多提案
数据并行类型
契约 早期开发。提案 P2659R2 (2022-11-30)。草案 P2660R0 (2022-10-14)。
更多提案
  • 发布合同技术规范的提案 - P2659R2 (2022-12-05)
  • 对合同 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++ 合同 - P2900R10 (2024-10-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++ 合同:后置条件捕获 - P3098R0 (2024-10-14)
  • 未定义行为和错误行为是合同违反 - P3100R1 (2024-10-16)
  • 东京对合同的技术修复 - P3119R1 (2024-05-09)
  • 合同 MVP 的虚拟函数上的合同 - P3165R0 (2024-02-27)
  • 继承的合同 - P3169R0 (2024-04-14)
  • 合同测试支持 - P3183R1 (2024-05-22)
  • P2900R6 的 LEWG 演示文稿 - P3189R0 (2024-03-19)
  • P2900R7 的 LEWG 演示文稿 - P3190R0 (2024-03-20)
  • 对东京 EWG 关于合同 MVP (P2900R6) 的投票结果的回应 - P3197R0 (2024-04-12)
  • 东京 LEWG 关于合同 MVP 的会议要点 - P3198R0 (2024-03-29)
  • sort() 的合同 - P3212R0 (2024-07-03)
  • C++ 合同:命名 Louis 语义 - P3226R0 (2024-04-12)
  • C++ 合同:修复合同违反处理 API - P3227R0 (2024-10-16)
  • C++ 合同:重新审视合同检查省略和重复 - P3228R1 (2024-05-21)
  • 关于命名合同语义的替代方案 - 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 对合同进行静态分析 - P3386R0 (2024-10-15)
  • 协程上的合同断言 - P3387R0 (2024-10-09)
  • 改进对从合同谓词抛出的异常的处理 - P3417R0 (2024-10-16)
  • 合同实施者报告 - P3460R0 (2024-10-16)
  • 标准库强化 - P3471R0 (2024-10-16)
  • 常量化不应是 MVP(Minimal Viable Product)的一部分 - P3478R0 (2024-10-16)
2D 图形 早期开发。草案 P0267R10 (2019-10-07)。
图形库 早期开发。
更多提案
  • 图形库:概述 - P3126R2 (2024-08-05)
  • 图形库:算法 - P3128R2 (2024-09-12)
  • 图形库:图形容器接口 - P3130R2 (2024-08-05)
  • 图形库:图形容器 - P3131R2 (2024-08-05)

[edit] 另请参见

C 文档 用于 实验性 C 特性

[edit] 外部链接

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