命名空間
變體
動作

實驗性 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)。

除了調用特性(invocation traits)外,已合併至 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。

並行 (Concurrency)
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 範圍(Ranges)TS 2017-12-05 發布 (ISO 商店)。草案:N4685 (2017-07-31)。

已合併至 C++20

範圍(實驗性),範圍<ranges>
ISO/IEC TS 22277:2017 協程(Coroutines)TS 2017-12-05 發布 (ISO 商店)。草案:N4736 (2018-03-31)。最新草案:N4775 (2018-10-07)。

已合併至 C++20

<coroutine>
ISO/IEC TS 19216:2018 網路(Networking)TS 2018-04-24 發布 (ISO 商店)。草案:N4734 (2017-04-04)。最新草案:N4771 (2018-10-08)。
參閱非 TS 提案
  • 標準安全網路 - P2586R0 (2022-09-13)
  • 網路的發送者-接收者(Sender-Receiver)介面 - P2762R2 (2023-10-12)
  • 基於 IETF TAPS 的 C++ 標準網路建議方向 - P3185R0 (2024-12-14)
  • 建立基於 TAPS 之網路連線的建議 API - P3482R0 (2024-12-14)
網路
ISO/IEC TS 21544:2018 模組(Modules)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 反射(Reflection)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)。
更多提案
  • 系統執行上下文(System execution context) - P2079R6 (2025-01-13)
  • 網路的發送者-接收者(Sender-Receiver)介面 - P2762R2 (2023-10-12)
  • 發送者與接收者的成員客製化點 - P2855R1 (2024-02-22)
  • C++ 執行器(Executors)的事件模型 - P2882R0 (2023-05-11)
  • 發送者演算法客製化 - P2999R3 (2023-12-13)
  • std::execution 介紹 - P3090R0 (2024-02-14)
  • C++26 的 std::execution 計畫 - P3109R0 (2024-02-12)
  • 改進發送者(Sender)表達式的診斷訊息 - 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)
  • 讓基於停止令牌(stop-token)的發送者取消機制更有效率 - 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)
  • 感知分配器(Allocator-aware)的 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++ 契約 (Contracts) - P2900R14 (2025-02-13)
更多提案
  • 發布契約(Contracts)技術規格的提案 - 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)
  • 受檢契約(Checked Contracts)的評估 - P2751R1 (2023-02-14)
  • 完整契約設施的大膽計畫 - P2755R1 (2024-04-11)
  • 契約 MVP 背後的理念 - P2817R0 (2023-03-05)
  • 支援定義時常數(Const-On-Definition)風格的契約提案 - P2829R0 (2023-04-13)
  • 契約 MVP 的契約違反處理語義 - P2852R0 (2023-04-24)
  • Lakos 規則:窄契約(Narrow Contracts)與 noexcept 本質上不相容 - P2861R0 (2023-05-19)
  • 契約語法的需求 - P2885R3 (2023-10-05)
  • Lambda 上的契約 - P2890R2 (2023-12-13)
  • 契約的常數求值(Constant evaluation) - P2894R2 (2024-01-11)
  • 契約 MVP 的懸而未決設計問題 - P2896R0 (2023-08-22)
  • C++ 契約 - 基本原理 - P2899R0 (2025-01-13)
  • 處理契約開放性設計問題的原則性方法 - P2932R3 (2024-01-16)
  • 類屬性(Attribute-Like)的契約語法 - 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)
  • P2900R6 LEWG 展示簡報:C++ 契約 - P3189R0 (2024-03-19)
  • P2900R7 LEWG 展示簡報: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)
  • 將現有的 Assertions 與契約整合 - P3290R2 (2024-09-06)
  • C++26 需要契約檢查 - P3297R1 (2024-06-21)
  • 在 C++ 契約中整合傳統 assert 設施的選擇性加入方法 - 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)
  • 契約斷言 vs 靜態分析與「安全性」 - 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)
  • 違反處理器 vs 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)
  • 更簡單的模式比對表示法 - P3332R0 (2024-06-18)
  • P2688R2 展示簡報 - 模式比對:match 表達式 - P3476R0 (2024-10-16)
  • 模式比對:開放和類型(Open Sum Types)的客製化點 - P3521R0 (2024-12-17)
  • 模式比對:*variant-like* 與 'std::expected' - P3527R1 (2025-01-13)
  • 模式比對 - P3572R0 (2025-01-12)
反射 主文件 (ISO/IEC TS 23619:2021) 已於上方的 反射 TS 中說明。
更多提案
  • C++ 中的可擴展反射 - P1240R2 (2022-01-14)
  • 展開語句(Expansion statements) - P1306R3 (2024-10-14)
  • 屬性反射 - P1887R1 (2020-01-13)
  • 超編程(Metaprogramming) - P2237R0 (2020-10-15)
  • 使用基於值的反射建立 Python 綁定 - P2911R1 (2023-10-13)
  • C++26 的反射 - P2996R9 (2025-01-13)
  • 使用反射取代產生 JS 綁定的元語言(Metalanguage) - 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)。
圖形(Graph)函式庫 早期開發中。
更多提案
  • 圖形函式庫:概覽 - P3126R2 (2024-08-05)
  • 圖形函式庫:演算法 - P3128R2 (2024-09-12)
  • 圖形函式庫:圖形容器介面 - P3130R2 (2024-08-05)
  • 圖形函式庫:圖形容器 - P3131R2 (2024-08-05)
統計(Statistics) 早期開發中。
更多提案
  • 基礎統計 - P1708R9 (2024-10-15)
  • 關於基礎統計 P1708R9 的備註 - P3495R0 (2024-11-13)
Profiles 早期開發中。
更多提案
  • 安全性 Profiles:ISO 標準 C++ 中的型別與資源安全編程 - P2816R0 (2023-02-16)
  • 初始 Profiles 的具體建議 - P3038R0 (2023-12-16)
  • 核心安全性 Profiles:規格、採用度與影響 - P3081R0 (2024-10-16)
  • Profiles 開發框架 - P3274R0 (2024-05-10)
  • 驗證類別初始化的安全性 Profile - P3402R1 (2024-10-15)
  • Profile 無效化 - 消除懸空指標 - P3446R0 (2024-10-14)
  • Profiles 語法 - P3447R0 (2024-10-14)
  • 對核心安全性 Profiles (P3081R0) 的回應 - P3543R0 (2024-12-17)
  • Profiles 面臨的眾多問題 - P3586R0 (2025-01-13)
  • C++ Profiles:框架 - P3589R0 (2025-01-13)

[編輯] 參閱

C 語言文件 關於 實驗性 C 特性

[編輯] 外部連結

1.  PL22.16/WG21 文件列表 - 2016-2025 年的所有 C++ 委員會文件 (TS/提案)。
2.  2025 年 JTC1/SC22/WG21 提案 (郵件列表).
English Deutsch 日本語 中文(简体) 中文(繁體)