名稱空間
變體
操作

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)
  • 基於 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)
  • finally, write_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)
  • 靜態分析和契約的“安全性”,P2900 vs P2680/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 (品) 的一部分 - 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)
  • 模式匹配:*變體類* 和 'std::expected' - P3527R1 (2025-01-13)
  • 模式匹配 - P3572R0 (2025-01-12)
反射 主文件 (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 的反射 - 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.  JTC1/SC22/WG21 2025 年提案 (郵件).