C++ 参考手册
- C++11
- C++14
- C++17
- C++20
- C++ 编译器支持情况表
- 独立与宿主实现
- C++ 语言
- C++ 关键词
- 预处理器
- C++ 标准库头文件
- 具名要求
- 功能特性测试 (C++20)
- 工具库
- 类型支持(基本类型、RTTI、类型特性)
- 概念库 (C++20)
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 容器库
- 迭代器库
- 范围库 (C++20)
- 算法库
- 数值库
- 输入/输出库
- 文件系统库
- 本地化库
- 正则表达式库
- 原子操作库
- 线程支持库
- 实验性 C++ 特性
- C++ 标准库扩展
- std::experimental::promise (库基础 TS)
- std::experimental::packaged_task (库基础 TS)
- 并行扩展
- 并行扩展,版本 2
- std::experimental::sample
- std::experimental::to_array
- std::experimental::source_location
- std::experimental::not_fn
- std::experimental::future
- std::experimental::shared_future
- std::experimental::pmr::resource_adaptor
- std::experimental::invocation_type, std::experimental::raw_invocation_type
- C++ 标准库扩展,版本 2
- std::experimental::propagate_const
- std::experimental::ostream_joiner
- std::experimental::randint
- std::experimental::observer_ptr
- std::experimental::is_detected, std::experimental::detected_t, std::experimental::detected_or
- C++ 标准库扩展,版本 3
- std::experimental::scope_exit
- std::experimental::scope_fail
- std::experimental::scope_success
- std::experimental::unique_resource
- 并发扩展
- 制约与概念
- 范围扩展
- std::experimental::function
- std::experimental::nonesuch
- std::experimental::reseed
- std::experimental::shuffle
- std::experimental::when_all
- std::experimental::barrier
- std::experimental::latch
- std::experimental::make_array
- 数学特殊函数
- 文件系统库
- std::experimental::erased_type
- std::experimental::when_any
- std::experimental::make_ready_future
- std::experimental::make_exceptional_future
- std::experimental::flex_barrier
- 注释
- 有用的资源
- 索引
- std 符号索引
- 协程支持 (C++20)
- C++ 关键词
位置:首页 > C++ 参考手册 >实验性 C++ 特性 > C++ 标准库扩展
C++ 标准库扩展
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 支持数组 (宏常量) |
定义于头文件
<experimental/memory_resource> | |
__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 命名空间
定义于头文件
<experimental/memory_resource> | |
封装内存资源的类的抽象接口 (类) | |
线程安全的,在不同块大小的池中管理分配的 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
变量模板: