C++ 标准库扩展

從 cppreference.com


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 newoperator delete 分配和解分配內存
(函數) [編輯]
返回一個不進行任何分配的靜態 memory_resource
(函數) [編輯]
獲取缺省 memory_resource
(函數) [編輯]
設置缺省 memory_resource
(函數) [編輯]

[編輯] 使用多態分配器的容器的便利別名

std::experimental::pmr 命名空間中為標準庫中的下列類模板提供便利別名和別名模板

提供了便利別名的容器模板列表

[編輯] shared_ptr 的數組支持

在標頭 <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 變量模板

提供了變量模板的類型特性和其他類模板