C++ standard libraries extensions
From cppreference.net
<
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>
|
|
|
用于类型擦除的占位符类型,例如在分配器中
(类) |
|
|
定义于头文件
<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
表示支持 sample 算法
(宏常量) |
已并入 C++17
ISO/IEC TS 19568:2015 的以下组件已被纳入 C++17。
optional 对象
|
定义于头文件
<experimental/optional>
|
|
|
表示
可选对象
的类模板
(类模板) |
|
类
any
|
定义于头文件
<experimental/any>
|
|
|
用于存储任意类型单个值的类型安全容器
(类) |
|
string_view
|
定义于头文件
<experimental/string_view>
|
|
|
字符串的非拥有引用
(类模板) |
|
类型擦除与多态分配器
多态分配器与内存资源
本节中的实体声明于 std::experimental::pmr 命名空间。
|
封装内存资源的抽象接口类
(类) |
|
|
线程安全的
memory_resource
,用于管理不同块大小内存池中的分配
(类) |
|
|
非线程安全的
memory_resource
,用于管理不同块大小内存池中的分配
(类) |
|
|
特殊用途的
memory_resource
,仅在资源被销毁时释放已分配的内存
(类) |
|
|
基于构造时指定的
memory_resource
支持运行时多态的分配器
(类模板) |
|
返回使用全局
operator new
和
operator delete
进行内存分配与释放的静态程序级
memory_resource
(函数) |
|
返回不执行任何内存分配的静态
memory_resource
(函数) |
|
获取默认的
memory_resource
(函数) |
|
设置默认的
memory_resource
(函数) |
|
使用多态分配器的容器便捷别名
便捷别名与别名模板
针对使用多态分配器的容器,在
std::experimental::pmr
命名空间中为标准库中的以下类模板提供:
| 提供便捷别名的容器模板列表 |
|---|
|
定义于头文件
<experimental/memory>
|
|
| 类 | 说明 |
|
支持数组的
std::shared_ptr
修改版本
(类模板) |
|
|
支持数组的
std::weak_ptr
修改版本
(class template) |
|
采样与搜索算法
|
定义于头文件
<experimental/algorithm>
|
|
|
从序列中选择 n 个随机元素
(函数模板) |
|
|
对序列应用搜索器
(函数模板) |
|
|
定义于头文件
<experimental/functional>
|
|
|
标准 C++ 库搜索算法实现
(类模板) |
|
|
创建 default_searcher 的辅助函数
(函数模板) |
|
|
Boyer-Moore 搜索算法实现
(类模板) |
|
|
创建 boyer_moore_searcher 的辅助函数
(函数模板) |
|
|
Boyer-Moore-Horspool 搜索算法实现
(类模板) |
|
|
创建 boyer_moore_horspool_searcher 的辅助函数
(函数模板) |
|
通用工具
|
定义于头文件
<experimental/tuple>
|
|
|
以参数元组调用函数
(函数模板) |
|
此外,TS 还为标准库中的以下类型特征及其他类模板提供了
大量
constexpr
变量模板
: