C++ standard libraries extensions, version 2
From cppreference.net
<
cpp
|
experimental
C++ 库基础扩展第二版,ISO/IEC TS 19568:2017,除了在 第一版 中定义的组件外,还为 C++ 标准库定义了以下新组件:
目录 |
C++ 检测惯用法
|
定义于头文件
<experimental/type_traits>
|
|
|
用于检测
模板特化
是否良构的别名模板
(别名模板) |
|
|
detected_t
在失败时返回的类类型
(类) |
|
用于类指针对象的常量传播包装器
|
用于指针类对象的常量传播包装器
(类模板) |
|
非拥有指针
|
定义于头文件
<experimental/memory>
|
|
|
表示非拥有指针的类
(类模板) |
|
std::array
创建
|
定义于头文件
<experimental/array>
|
|
|
(库基础技术规范 v2)
|
创建
std::array
对象,其大小及可选的元素类型由实参推导得出
(函数模板) |
ostream_joiner
|
定义于头文件
<experimental/iterator>
|
|
|
输出迭代器,将连续元素写入输出流,并使用分隔符分隔相邻元素
(类模板) |
|
简单随机数生成设施
每个线程都维护一个类型为 std::default_random_engine 的 每线程引擎 ,该引擎被初始化为不可预测状态,并由以下函数使用。
|
定义于头文件
<experimental/random>
|
|
|
生成指定范围内的随机整数
(函数模板) |
|
|
重置每线程随机引擎的种子
(函数) |
|
|
定义于头文件
<experimental/algorithm>
|
|
|
从序列中随机选择 n 个元素
(函数模板) |
|
|
随机重排范围内的元素
(函数模板) |
|
特性测试宏
|
定义于头文件
<experimental/type_traits>
|
|
|
__cpp_lib_experimental_logical_traits
|
值至少为
201511
表示支持逻辑运算符类型特征
(宏常量) |
|
__cpp_lib_experimental_detect
|
值至少为
201505
表示支持检测惯用法
(宏常量) |
|
__cpp_lib_experimental_propagate_const
|
值至少为
201505
表示支持
propagate_const
(宏常量) |
|
定义于头文件
<experimental/functional>
|
|
|
__cpp_lib_experimental_not_fn
|
值至少为
201406
表示支持
not_fn
(宏常量) |
|
定义于头文件
<experimental/memory>
|
|
|
__cpp_lib_experimental_observer_ptr
|
值至少为
201411
表示支持
observer_ptr
(宏常量) |
|
定义于头文件
<experimental/array>
|
|
|
__cpp_lib_experimental_make_array
|
值至少为
201505
表示支持
make_array
(宏常量) |
|
定义于头文件
<experimental/iterator>
|
|
|
__cpp_lib_experimental_ostream_joiner
|
值至少为
201411
表示支持
ostream_joiner
(宏常量) |
|
定义于头文件
<experimental/vector>
|
|
|
__cpp_lib_experimental_erase_if
|
值至少为
201411
表示支持统一容器擦除
(宏常量) |
|
定义于头文件
<experimental/numeric>
|
|
|
__cpp_lib_experimental_gcd_lcm
|
值至少为
201411
表示支持
gcd
和
lcm
(宏常量) |
|
定义于头文件
<experimental/random>
|
|
|
__cpp_lib_experimental_randint
|
值至少为
201511
表示支持
randint
及相关函数
(宏常量) |
|
__cpp_lib_experimental_source_location
|
值至少为
201505
表示支持
source_location
(宏常量) |
已并入 C++17
以下库基础 v2 的组件已被纳入 C++17 标准。
|
定义于头文件
<experimental/type_traits>
|
|
可变参数别名模板,用于
void
(别名模板) |
|
|
定义于头文件
<experimental/type_traits>
|
|
|
可变参数逻辑与元函数
(类模板) |
|
|
可变参数逻辑或元函数
(类模板) |
|
|
逻辑非元函数
(类模板) |
|
|
定义于头文件
<experimental/functional>
|
|
|
创建返回其持有函数对象结果之补集的函数对象
(函数模板) |
|
|
定义于头文件
<experimental/numeric>
|
|
返回两个整数最大公约数的
constexpr
函数模板
(函数模板) |
|
返回两个整数最小公倍数的
constexpr
函数模板
(函数模板) |
|
已并入 C++20
以下库基础 v2 的组件已被纳入 C++20 标准。
Uniform container erasure
|
定义于头文件
<experimental/string>
|
|
|
从
std::basic_string
中擦除所有等于特定值的元素
(函数模板) |
|
|
从
std::basic_string
中擦除所有满足谓词的元素
(函数模板) |
|
|
定义于头文件
<experimental/deque>
|
|
|
从
std::deque
中擦除所有等于特定值的元素
(函数模板) |
|
|
从
std::deque
中擦除所有满足谓词的元素
(函数模板) |
|
|
定义于头文件
<experimental/vector>
|
|
|
从
std::vector
中擦除所有等于特定值的元素
(函数模板) |
|
|
从
std::vector
中擦除所有满足谓词的元素
(函数模板) |
|
|
定义于头文件
<experimental/forward_list>
|
|
|
从
std::forward_list
中擦除所有等于特定值的元素
(函数模板) |
|
|
从
std::forward_list
中擦除所有满足谓词的元素
(函数模板) |
|
|
定义于头文件
<experimental/list>
|
|
|
从
std::list
中擦除所有等于特定值的元素
(函数模板) |
|
|
从
std::list
中擦除所有满足谓词的元素
(函数模板) |
|
|
定义于头文件
<experimental/map>
|
|
|
从
std::map
中擦除所有满足谓词的元素
(函数模板) |
|
|
从
std::multimap
中擦除所有满足谓词的元素
(函数模板) |
|
|
定义于头文件
<experimental/set>
|
|
|
从
std::set
中擦除所有满足谓词的元素
(函数模板) |
|
|
从
std::multiset
中擦除所有满足谓词的元素
(函数模板) |
|
|
定义于头文件
<experimental/unordered_map>
|
|
|
从
std::unordered_map
中擦除所有满足谓词的元素
(函数模板) |
|
|
从
std::unordered_multimap
中擦除所有满足谓词的元素
(函数模板) |
|
|
定义于头文件
<experimental/unordered_set>
|
|
|
从
std::unordered_set
中擦除所有满足谓词的元素
(函数模板) |
|
|
从
std::unordered_multiset
中擦除所有满足谓词的元素
(函数模板) |
|
源代码信息捕获
|
表示源代码信息的类,如文件名、行号和函数名
(类) |
|
std::array
转换
|
定义于头文件
<experimental/array>
|
|
|
从内置数组创建
std::array
对象
(函数模板) |
|