C++ 標準程式庫擴充,第 2 版
出自 cppreference.com
< cpp | experimental
C++ 程式庫基礎擴充第 2 版,ISO/IEC TS 19568:2017,定義了 C++ 標準程式庫的下列新組件,作為 第 1 版 所定義內容的補充
目錄 |
[編輯] C++ 偵測慣用語
| 定義於標頭檔
<experimental/type_traits> | |
| 用於偵測 template-id 是否定義良好的別名模板 (別名模板) | |
| 當 detected_t 失敗時回傳的類別型別 (class) | |
[編輯] 指標類物件的常數傳播包裝器
| 指標類物件的常數傳播包裝器 (類別模板) | |
[編輯] 非擁有指標
| 定義於標頭檔
<experimental/memory> | |
| 代表非擁有指標的類別 (類別模板) | |
[編輯] std::array 建立
| 定義於標頭檔
<experimental/array> | |
| (Library Fundamentals TS v2) |
建立一個 std::array 物件,其大小與(可選的)元素型別由參數推導得出 (函數模板) |
[編輯] ostream_joiner
| 定義於標頭檔
<experimental/iterator> | |
| 一種輸出迭代器,將連續元素寫入輸出串流中,並以分隔符號區隔相鄰元素 (類別模板) | |
[編輯] 簡易亂數生成設施
為每個執行緒維護一個型別為 std::default_random_engine 的執行緒專屬引擎,初始化為不可預測的狀態,供下方的函數使用。
| 定義於標頭檔
<experimental/random> | |
| 在指定範圍內生成一個隨機整數 (函數模板) | |
| 重新對執行緒專屬的隨機引擎進行種子設定 (函數) | |
| 定義於標頭檔
<experimental/algorithm> | |
| 從序列中選擇 n 個隨機元素 (函式模板) | |
| 隨機重新排序範圍內的元素 (函式模板) | |
[編輯] 功能測試巨集
| 定義於標頭檔
<experimental/type_traits> | |
| __cpp_lib_experimental_logical_traits |
值至少為 201511 表示支援邏輯運算子型別特徵 (巨集常數) |
| __cpp_lib_experimental_detect |
值至少為 201505 表示支援偵測慣用語 (巨集常數) |
| __cpp_lib_experimental_propagate_const |
值至少為 201505 表示支援 propagate_const (巨集常數) |
| 定義於標頭檔
<experimental/functional> | |
| __cpp_lib_experimental_not_fn |
值至少為 201406 表示支援 not_fn (巨集常數) |
| 定義於標頭檔
<experimental/memory> | |
| __cpp_lib_experimental_observer_ptr |
值至少為 201411 表示支援 observer_ptr (巨集常數) |
| 定義於標頭檔
<experimental/array> | |
| __cpp_lib_experimental_make_array |
值至少為 201505 表示支援 make_array (巨集常數) |
| 定義於標頭檔
<experimental/iterator> | |
| __cpp_lib_experimental_ostream_joiner |
值至少為 201411 表示支援 ostream_joiner (巨集常數) |
| 定義於標頭檔
<experimental/vector> | |
| __cpp_lib_experimental_erase_if |
值至少為 201411 表示支援統一容器刪除 (巨集常數) |
| 定義於標頭檔
<experimental/numeric> | |
| __cpp_lib_experimental_gcd_lcm |
值至少為 201411 表示支援 gcd 與 lcm (巨集常數) |
| 定義於標頭檔
<experimental/random> | |
| __cpp_lib_experimental_randint |
值至少為 201511 表示支援 randint 及相關函數 (巨集常數) |
| __cpp_lib_experimental_source_location |
值至少為 201505 表示支援 source_location (巨集常數) |
[編輯] 已併入 C++17
程式庫基礎 v2 的下列組件已被採納進 C++17 標準。
| 定義於標頭檔
<experimental/type_traits> | |
用於 void 的變長別名模板(別名模板) | |
| 定義於標頭檔
<experimental/type_traits> | |
| 變長參數邏輯「與」(AND) 元函式 (類別模板) | |
| 變長參數邏輯「或」(OR) 元函式 (類別模板) | |
| 邏輯「非」(NOT) 元函式 (類別模板) | |
| 定義於標頭檔
<experimental/functional> | |
| 建立一個函式物件,它回傳其所持有的函式物件結果的補數 (函數模板) | |
| 定義於標頭檔
<experimental/numeric> | |
回傳兩個整數最大公因數的 constexpr 函數模板(函數模板) | |
回傳兩個整數最小公倍數的 constexpr 函數模板(函數模板) | |
[編輯] 已併入 C++20
程式庫基礎 v2 的下列組件已被採納進 C++20 標準。
[編輯] 統一容器刪除
| 定義於標頭檔
<experimental/string> | |
| 從 std::basic_string 中刪除所有等於特定值的元素 (函式模板) | |
| 從 std::basic_string 中刪除所有滿足謂詞的元素 (函式模板) | |
| 定義於標頭檔
<experimental/deque> | |
| 從 std::deque 中刪除所有等於特定值的元素 (函式模板) | |
| 從 std::deque 中刪除所有滿足謂詞的元素 (函式模板) | |
| 定義於標頭檔
<experimental/vector> | |
| 從 std::vector 中刪除所有等於特定值的元素 (函式模板) | |
| 從 std::vector 中刪除所有滿足謂詞的元素 (函式模板) | |
| 定義於標頭檔
<experimental/forward_list> | |
| 從 std::forward_list 中刪除所有等於特定值的元素 (函式模板) | |
| 從 std::forward_list 中刪除所有滿足謂詞的元素 (函式模板) | |
| 定義於標頭檔
<experimental/list> | |
| 從 std::list 中刪除所有等於特定值的元素 (函式模板) | |
| 從 std::list 中刪除所有滿足謂詞的元素 (函式模板) | |
| 定義於標頭檔
<experimental/map> | |
| 從 std::map 中刪除所有滿足謂詞的元素 (函式模板) | |
| 從 std::multimap 中刪除所有滿足謂詞的元素 (函式模板) | |
| 定義於標頭檔
<experimental/set> | |
| 從 std::set 中刪除所有滿足謂詞的元素 (函式模板) | |
| 從 std::multiset 中刪除所有滿足謂詞的元素 (函式模板) | |
| 定義於標頭檔
<experimental/unordered_map> | |
| 從 std::unordered_map 中刪除所有滿足謂詞的元素 (函式模板) | |
| 從 std::unordered_multimap 中刪除所有滿足謂詞的元素 (函式模板) | |
| 定義於標頭檔
<experimental/unordered_set> | |
| 從 std::unordered_set 中刪除所有滿足謂詞的元素 (函式模板) | |
| 從 std::unordered_multiset 中刪除所有滿足謂詞的元素 (函式模板) | |
[編輯] 原始碼資訊擷取
| 表示原始碼資訊(如檔案名稱、行號與函式名稱)的類別 (class) | |
[編輯] std::array 轉換
| 定義於標頭檔
<experimental/array> | |
| 從內建陣列建立一個 std::array 物件 (函數模板) | |