具名要求
来自cppreference.com
                    
                                        
                    < cpp
                    
                                                            
                    此页面中列出的具名要求,是 C++ 标准的规范性文本中使用的具名要求,用于定义标准库的期待。
某些具名要求在 C++20 中正在以概念语言特性进行形式化。在那之前,确保以满足这些要求的模板实参实例化标准库模板是程序员的重担。若不这么做,则可能导致非常复杂的编译器诊断。
 基本概念 | |
|  指定该类型对象可以默认构造  (具名要求)  | |
|   (C++11)  | 
 指定该类型对象可以从右值构造   (具名要求)  | 
|  指定该类型对象可以从左值构造   (具名要求)  | |
|   (C++11)  | 
 指定该类型对象可以从右值赋值   (具名要求)  | 
|  指定该类型对象可以从左值赋值   (具名要求)  | |
|  指定该对象可以析构  (具名要求)  | |
 类型属性 | |
|   注意,标准并未定义这个子类别中指定的各名字的具名要求。 它们是由核心语言定义的类型分类。将它们作为具名要求于此处包含只是为了一致性。  | |
|   (C++11)  | 
 拥有平凡的复制、赋值及析构函数的类  (具名要求)  | 
|   (C++11)  | 
 拥有平凡的构造函数、赋值及析构函数的类  (具名要求)  | 
|   (C++11)  | 
 非虚类,仅包含其他标准布局 (standard layout) 成员,且其全部具有相同的访问控制   (具名要求)  | 
|  POD(简旧数据)结构体,与 C 的 struct 兼容   (具名要求)  | |
 全库范围的概念 | |
 operator== 是一种等价关系  (具名要求)  | |
 operator< 是一种严格弱序关系  (具名要求)  | |
|   (C++11)  | 
 可用无限定的非成员函数调用 swap() 进行交换的类型   (具名要求)  | 
|   (C++11)  | 
 解引用为某种可交换 (Swappable) 类型的遗留迭代器 (LegacyIterator)    (具名要求)  | 
|   (C++11)  | 
 支持空值的指针式类型   (具名要求)  | 
|   (C++11)  | 
 函数对象 (FunctionObject) ,对于不同输入值产生相同输出具有很低概率   (具名要求)  | 
|  包含分配信息的类类型   (具名要求)  | |
|  能以函数调用语法进行调用的对象   (具名要求)  | |
|  定义了调用操作的类型   (具名要求)  | |
|  函数对象 (FunctionObject) ,对于一个实参,返回一个可转换为 bool 的值而不改动实参   (具名要求)  | |
|  函数对象 (FunctionObject) ,对于两个实参,返回一个可转换为 bool 的值而不改动各实参   (具名要求)  | |
|  建立一种顺序关系的二元谓词 (BinaryPredicate)   (具名要求)  | |
 容器 | |
|  允许通过迭代器访问元素的数据结构   (具名要求)  | |
|  使用双向迭代器的容器   (具名要求)  | |
|  使用分配器的容器   (具名要求)  | |
|  线性存储各元素的容器   (具名要求)  | |
|   (C++17)  | 
 在相邻内存地址中存储各元素的容器   (具名要求)  | 
|  将元素与键相关联而存储它们的容器   (具名要求)  | |
|  将元素与键关联并将它们存储于桶中的容器   (具名要求)  | |
 容器元素 | |
|   (C++11)  | 
 可在未初始化存储中默认构造的元素   (具名要求)  | 
|   (C++11)  | 
 可在未初始化存储中复制构造的元素   (具名要求)  | 
|   (C++11)  | 
 可在未初始化存储中移动构造的函数   (具名要求)  | 
|   (C++11)  | 
 可在未初始化存储中构造的元素   (具名要求)  | 
|   (C++11)  | 
 可用分配器销毁的元素   (具名要求)  | 
 迭代器 | |
|  在一些数据结构内访问数据的通用概念   (具名要求)  | |
|  可用于读数据的迭代器   (具名要求)  | |
|  可用于写数据的迭代器  (具名要求)  | |
|  可用于多次读数据的迭代器  (具名要求)  | |
|  可增可减的迭代器  (具名要求)  | |
|  可在常数时间内增加的迭代器  (具名要求)  | |
|  指向连续分配元素的迭代器   (具名要求)  | |
|   (C++20)  | 
 能在常量表达式求值中使用的迭代器   (具名要求)  | 
 流 I/O 函数 | |
|  不跳过前导空格并对处理字符计数的流输入函数   (具名要求)  | |
|  跳过前导空格的流输入函数   (具名要求)  | |
|  基本流输出函数   (具名要求)  | |
|  出错时设置失败位并返回流引用的流输出函数   (具名要求)  | |
 随机数生成 | |
|   (C++11)  | 
 消耗一个整数序列,产出一个 32 位无符号值的序列    (具名要求)  | 
|  返回均匀分布的随机无符号整数   (具名要求)  | |
|   (C++11)  | 
 由种子定义的确定性均匀随机位生成器 (UniformRandomBitGenerator)    (具名要求)  | 
|  对另一个随机数引擎 (RandomNumberEngine) 的输出进行变换的随机数引擎 (RandomNumberEngine)     (具名要求)  | |
|  返回服从给定数学概率密度函数分布的随机数    (具名要求)  | |
 并发 | |
|   (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 构造函数的类型   (具名要求)  | 
| 本节未完成 原因:任何其他遗漏的具名要求?  |