C++ 標準程式庫擴充
出自 cppreference.com
< cpp | experimental
C++ 函式庫基礎擴充第 1 版 (ISO/IEC TS 19568:2015) 為 C++ 標準程式庫定義了下列新組件:
目錄 |
[編輯] 未被選入 C++17 的組件
ISO/IEC TS 19568:2015 中的下列組件未被選入 C++17。
[編輯] 支援型別擦除配置器的既有類別修改版
| 定義於標頭檔
<experimental/functional> | |
| 支援型別擦除配置器的 std::function 修改版本 (類別模板) | |
| 定義於標頭檔
<experimental/future> | |
| 支援型別擦除配置器的 std::promise 修改版本 (類別模板) | |
| 支援型別擦除配置器的 std::packaged_task 修改版本 (類別模板) | |
[編輯] 記憶體資源配接器
| 將配置器配接為 memory_resource (別名模板) |
[編輯] 通用公用程式
| 定義於標頭檔
<experimental/utility> | |
| 用於型別擦除(例如在配置器中)的預留型別 (class) | |
| 定義於標頭檔
<experimental/type_traits> | |
| 當可呼叫物件以給定引數型別呼叫時,推導其隱含的函式型別 (類別模板) | |
[編輯] 功能測試巨集
| 定義於標頭檔
<experimental/optional> | |
| __cpp_lib_experimental_optional |
值至少為 201411 表示支援 optional 型別 (巨集常數) |
| 定義於標頭檔
<experimental/any> | |
| __cpp_lib_experimental_any |
值至少為 201411 表示支援 any 型別 (巨集常數) |
| 定義於標頭檔
<experimental/string_view> | |
| __cpp_lib_experimental_string_view |
值至少為 201411 表示支援 basic_string_view 模板 (巨集常數) |
| 定義於標頭檔
<experimental/tuple> | |
| __cpp_lib_experimental_apply |
值至少為 201402 表示支援 tuple 的 apply() 函式 (巨集常數) |
| 定義於標頭檔
<experimental/type_traits> | |
| __cpp_lib_experimental_type_trait_variable_templates |
值至少為 201402 表示支援變數模板型別特徵 (Type Trait) (巨集常數) |
| __cpp_lib_experimental_invocation_type |
值至少為 201406 表示支援呼叫型別特徵 (巨集常數) |
| 定義於標頭檔
<experimental/functional> | |
| __cpp_lib_experimental_boyer_moore_searching |
值至少為 201411 表示支援額外的搜尋演算法 (巨集常數) |
| __cpp_lib_experimental_function_erased_allocator |
值至少為 201406 表示支援 std::function 的型別擦除配置器 (巨集常數) |
| 定義於標頭檔
<experimental/future> | |
| __cpp_lib_experimental_promise_erased_allocator |
值至少為 201406 表示支援 std::promise 的型別擦除配置器 (巨集常數) |
| __cpp_lib_experimental_packaged_task_erased_allocator |
值至少為 201406 表示支援 std::packaged_task 的型別擦除配置器 (巨集常數) |
| 定義於標頭檔
<experimental/memory> | |
| __cpp_lib_experimental_shared_ptr_arrays |
值至少為 201406 表示支援 shared_ptr 陣列 (巨集常數) |
| __cpp_lib_experimental_memory_resources |
值至少為 201402 表示支援多型記憶體資源 (巨集常數) |
| 定義於標頭檔
<experimental/algorithm> | |
| __cpp_lib_experimental_sample |
值為 201402 表示支援 sample 演算法 (巨集常數) |
[編輯] 已併入 C++17
ISO/IEC TS 19568:2015 中的下列組件已納入 C++17。
[編輯] optional 物件
| 定義於標頭檔
<experimental/optional> | |
| 代表 optional 物件 的類別模板 (類別模板) | |
[編輯] any 類別
| 定義於標頭檔
<experimental/any> | |
| 用於儲存任何型別之單一數值的型別安全容器 (class) | |
[編輯] string_view
| 定義於標頭檔
<experimental/string_view> | |
| 指向字串的非擁有參考 (類別模板) | |
[編輯] 型別擦除與多型配置器
[編輯] 多型配置器與記憶體資源
本章節的實體宣告於 std::experimental::pmr 命名空間中。
| 用於封裝記憶體資源的類別的抽象介面 (class) | |
| 用於管理不同區塊大小之記憶體池配置的執行緒安全 memory_resource (類別) | |
| 用於管理不同區塊大小之記憶體池配置的執行緒不安全 memory_resource (類別) | |
| 一種特殊用途的 memory_resource,僅在該資源被銷毀時才會釋放已配置的記憶體 (class) | |
| 一種支援執行時期多型的配置器,基於建構時提供的 memory_resource (類別模板) | |
回傳一個靜態的程式全域 memory_resource,它使用全域的 operator new 與 operator delete 來配置與釋放記憶體(函式) | |
回傳一個不進行任何配置的靜態 memory_resource(函式) | |
取得預設的 memory_resource(函式) | |
設定預設的 memory_resource(函式) | |
[編輯] 使用多型配置器的容器之便利別名
在 std::experimental::pmr 命名空間中,針對標準程式庫中的下列類別模板提供了使用多型配置器的 便利別名與別名模板
| 提供便利別名的容器模板列表 |
|---|
[編輯]
| 定義於標頭檔
<experimental/memory> | |
| 類別 | 描述 |
| 支援陣列的 std::shared_ptr 修改版本 (類別模板) | |
| 支援陣列的 std::weak_ptr 修改版本 (類別模板) | |
[編輯] 取樣與搜尋演算法
| 定義於標頭檔
<experimental/algorithm> | |
| 從序列中隨機選取 n 個元素 (函式模板) | |
| 將搜尋器 (Searcher) 應用於序列 (函式模板) | |
| 定義於標頭檔
<experimental/functional> | |
| 標準 C++ 函式庫搜尋演算法實作 (類別模板) | |
| 建立 default_searcher 的輔助函式 (函式模板) | |
| Boyer-Moore 搜尋演算法實作 (類別模板) | |
| 建立 boyer_moore_searcher 的輔助函式 (函式模板) | |
| Boyer-Moore-Horspool 搜尋演算法實作 (類別模板) | |
| 建立 boyer_moore_horspool_searcher 的輔助函式 (函式模板) | |
[編輯] 通用公用程式
| 定義於標頭檔
<experimental/tuple> | |
| 將函式呼叫應用於元組 (tuple) 的引數 (函式模板) | |
此外,TS 為標準程式庫中的下列型別特徵與其他類別模板提供了 眾多 constexpr 變數模板