C++ 标准库扩展
從 cppreference.com
< cpp | experimental
C++ 庫基礎擴展之版本 1 (The C++ Extensions for Library Fundamentals),ISO/IEC TS 19568:2015 為 C++ 標準庫定義下列新組件:
目錄 |
[編輯] 未選擇包含於 C++17 中的部分
C++17 未選擇包含 ISO/IEC TS 19568:2015 的下列組件。
[編輯] 支持類型擦除分配器的既存類修改版本
在標頭
<experimental/functional> 定義 | |
帶有類型擦除分配器支持的 std::function 修改版本 (類模板) | |
在標頭
<experimental/future> 定義 | |
帶有類型擦除分配器支持的 std::promise 修改版本 (類模板) | |
帶有類型擦除分配器支持的 std::packaged_task 修改版本 (類模板) |
[編輯] 內存資源適配器
將分配器適配到 memory_resource (別名模板) |
[編輯] 通用工具
在標頭
<experimental/utility> 定義 | |
類型擦除的佔位符類型,例如在分配器中 (類) | |
在標頭
<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 的值,指示支持類型特徵的變量模板 (宏常量) |
__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 的值,指示支持採樣算法 (宏常量) |
[編輯] 已併入 C++17
ISO/IEC TS 19568:2015 的下列組件已包含於 C++17。
[編輯] 可選對象
在標頭
<experimental/optional> 定義 | |
表示可選對象的類模板 (類模板) |
[編輯] 類 any
在標頭
<experimental/any> 定義 | |
任何類型單個值的類型安全容器 (類) |
[編輯] string_view
在標頭
<experimental/string_view> 定義 | |
到字符串的非佔有引用 (類模板) |
[編輯] 類型擦除及多態分配器
[編輯] 多態分配器與內存資源
此節中的實體聲明於 std::experimental::pmr 命名空間。
封裝內存資源的類的抽象接口 (類) | |
線程安全的,在不同塊大小的池中管理分配的 memory_resource (類) | |
線程不安全的,在不同塊大小的池中管理分配的 memory_resource (類) | |
特殊用途的 memory_resource,它僅在銷毀資源時釋放分配的內存 (類) | |
支持運行時多態的分配器,多態基於構造所用的 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
變量模板: