库概念
来自cppreference.com
< cpp
概念是一项对于类型的具名要求集合的描述。
概念的正式规范(ISO/IEC TS 19217:2015)是一个试验性的规范,它使得在重载决议和模板特化中,能够检验每个模板参数是否满足期待。
列于此页面的库概念是用于 C++ 标准化文本,用以定义标准库期待的具名要求。我们期待 C++ 标准库的未来版本以上述技术规范,将这些概念正规化。此前,确保库模板以满足这些概念的模板参数实例化,是程序员的责任。不符合此要求的做法可能会带来非常复杂的编译器诊断报告。
基础 | ||
指定该类型对象可以默认构造 (概念) | ||
(C++11) |
指定该类型对象可以从右值构造 (概念) | |
指定该类型对象可以从左值构造 (概念) | ||
(C++11) |
指定该类型对象可以从右值赋值 (概念) | |
指定该类型对象可以从左值赋值 (概念) | ||
指定该对象可以析构 (概念) | ||
布局 | ||
注意,标准没有定义指定于此子类别的具名要求或概念。 它们是由核心语言定义的类型分类。把它们作为概念放到此处只是为了一致性。 | ||
(C++11) |
拥有平凡复制、赋值及析构器的类 (概念) | |
(C++11) |
拥有平凡构造器、赋值及析构器的类 (概念) | |
(C++11) |
仅包含其他标准布局 (StandartLayout) 成员的非虚类,都有相同的访问控制 (概念) | |
POD (简旧数据)结构体,与 C struct 兼容 (概念) | ||
库所属 | ||
operator== 是等价关系 (概念) | ||
operator< 是严格弱序关系 (概念) | ||
(C++11) |
可用非限定非成员函数调用 swap() 交换的类型 (概念) | |
(C++11) |
解引用到可交换 (Swappable ) 类型的迭代器 (Iterator ) (概念) | |
(C++11) |
支持空置的类指针类型 (概念) | |
(C++11) |
输入值相异,相同输出概率低的函数对象 (FunctionObject ) (概念) | |
包含分配信息的类类型 (概念) | ||
能以函数调用语法调用的对象 (概念) | ||
定义了调用操作的类型 (概念) | ||
有单参数,且不修改它,返回值可转换为 bool 的函数对象 (FunctionObject ) (概念) | ||
有双参数,且不修改它,返回值可转换为 bool 的函数对象 (FunctionObject ) (概念) | ||
建立顺序关系的二元谓词 (BinaryPredicate ) (概念) |
容器 | |
允许通过迭代器访问元素的数据结构 (概念) | |
使用双向迭代器的容器 (概念) | |
(C++11) |
使用分配器的容器 (概念) |
元素线性存储的容器 (概念) | |
(C++17) |
元素存储于相邻内存地址的容器 (概念) |
通过将元素关联到关键存储它们的容器 (概念) | |
(C++11) |
通过将元素关联到关键以将它们存储于桶中的容器 (概念) |
容器元素 | |
(C++11) |
可在未初始化存储默认构造的元素 (概念) |
(C++11) |
可在未初始化存储中复制构造的元素 (概念) |
(C++11) |
可在未初始化存储中移动构造的函数 (概念) |
(C++11) |
可在未初始化存储中构造的元素 (概念) |
(C++11) |
可用分配器销毁的元素 (概念) |
迭代器 | |
在一些数据结构内访问数据的通用概念 (概念) | |
可用于读数据的迭代器 (概念) | |
可用于写数据的迭代器 (概念) | |
可用于多次读数据的迭代器 (概念) | |
可增减的迭代器 (概念) | |
可在常数时间内增加的迭代器 (概念) | |
(C++17) |
指向相继分配元素的迭代器 (概念) |
流 I/O 函数 | |
不跳过前导空格并对处理字符计数的流输入函数 (概念) | |
跳过前导空格的流输入函数 (概念) | |
基本流输出函数 (概念) | |
设置失败位并返回流引用的流输出函数 (概念) | |
随机数生成 | |
(C++11) |
投入一个整数序列,产出一个 32 位无符号值的序列 (概念) |
(C++11) |
返回均匀分布的随机无符号整数 (概念) |
(C++11) |
由种子定义的确定性均匀随机位生成器 (UniformRandomBitGenerator ) (概念) |
(C++11) |
转换另一个随机数引擎 (RandomNumberEngine ) 输出的随机数引擎 (RandomNumberEngine ) (概念) |
(C++11) |
返回服从给定数学概率密度分布函数的随机数 (概念) |
并发 | |
(C++11) |
为执行代理(即线程)提供独占所有权语义 (概念) |
(C++11) |
支持有意锁获取的基础可锁 (BasicLockable ) (概念) |
(C++11) |
支持定时锁获取的可锁 (Lockable ) (概念) |
(C++11) |
保护数据免受数据竞争和顺序一致同步影响的可锁 (Lockable ) (概念) |
(C++11) |
保护数据免受数据竞争和顺序一致同步影响的可定时锁 (TimedLockable ) (概念) |
(C++17) |
支持共享所有权语义的互斥 (Mutex ) (概念) |
(C++14) |
支持共享所有权语义的定时互斥 (TimedMutex ) (概念) |
其他 | |
(C++11) |
描述类型的属性 (概念) |
(C++11) |
描述二个类型间的关系 (概念) |
(C++11) |
修改类型属性 (概念) |
(C++11) |
将时期、时间点,以及取得当前时间点的函数聚合 (概念) |
(C++11) |
不抛异常的时钟 (Clock ) (概念) |
为字符类型定义类型和函数 (概念) | |
表示流的位置 (概念) | |
表示流的偏移 (概念) | |
位集、整数或枚举 (概念) | |
初始化效率上等于赋值的类型 (概念) | |
(C++11) |
用正则表达式库定义类型和函数 (概念) |
(C++11) |
拥有 constexpr 构造函数的类型 (概念) |
本节未完成 原因:任何其他遗漏的概念? |