命名空间
变体
操作

C++ 标准库扩展

来自 cppreference.cn
 
 
实验性
技术规范
文件系统库 (文件系统 TS)
库基础 (library fundamentals TS)
库基础 2 (library fundamentals TS v2)
库基础 3 (library fundamentals TS v3)
并行性扩展 (parallelism TS)
并行性扩展 2 (parallelism TS v2)
并发性扩展 (concurrency TS)
并发性扩展 2 (concurrency TS v2)
概念 (concepts TS)
范围 (ranges TS)
反射 (reflection TS)
数学特殊函数 (special functions TR)
实验性非 TS
模式匹配
线性代数
std::execution
契约
2D 图形
 
 

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 的值表示支持 invocation type 特征
(宏常量)
定义于头文件 <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 支持运行时多态
(类模板)
返回一个静态的程序范围的 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 个随机元素
(函数模板)
将搜索器应用于序列
(函数模板)
定义于头文件 <experimental/functional>
标准 C++ 库搜索算法实现
(类模板)
用于创建 default_searcher 的辅助函数
(函数模板)
Boyer-Moore 搜索算法实现
(类模板)
用于创建 boyer_moore_searcher 的辅助函数
(函数模板)
Boyer-Moore-Horspool 搜索算法实现
(类模板)
用于创建 boyer_moore_horspool_searcher 的辅助函数
(函数模板)

[编辑] 通用工具

定义于头文件 <experimental/tuple>
将函数调用到参数元组
(函数模板)

此外,TS 为以下类型特征和标准库中的其他类模板提供了大量的 constexpr 变量模板

为其提供变量模板的类型特征和其他类模板的列表