C++ 标准库扩展
来自cppreference.com
                    
                                        
                    < cpp | experimental
                    
                                                            
                    C++ 库基础扩展之版本 1 (The C++ Extensions for Library Fundamentals) , ISO/IEC TS 19568:2015 为 C++ 标准库定义下列新组件:
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 变量模板: