具名要求

来自cppreference.com
< cpp
 
 
 

列于此页面的具名要求是用于 C++ 标准的规范性文本的具名要求,它们定义标准库的期待。

某些具名要求在 C++20 中正在以概念语言特性形式化。在那之前,确保以满足这些要求的模板实参实例化标准库模板是程序员的重担。若不这么做,则可能导致非常复杂的编译器诊断。

目录

基础

指定该类型对象可以默认构造
(具名要求)
指定该类型对象可以从右值构造
(具名要求)
指定该类型对象可以从左值构造
(具名要求)
指定该类型对象可以从右值赋值
(具名要求)
指定该类型对象可以从左值赋值
(具名要求)
指定该对象可以析构
(具名要求)

布局

注意,标准没有定义指定于此子类别的具名要求。
它们是由核心语言定义的类型分类。把它们作为具名要求包含于此只是为了一致性。
拥有平凡复制、赋值及析构器的类
(具名要求)
拥有平凡构造器、赋值及析构器的类
(具名要求)
仅包含其他标准布局 (standard layout) 成员的非虚类,都有相同的访问控制
(具名要求)
POD (简旧数据)结构体,与 C struct 兼容
(具名要求)

库所属

operator== 是等价关系
(具名要求)
operator< 是严格弱序关系
(具名要求)
(C++11)
可用非限定非成员函数调用 swap() 交换的类型
(具名要求)
解引用到可交换 (Swappable) 类型的迭代器 (Iterator)
(具名要求)
支持空置的类指针类型
(具名要求)
(C++11)
输入值相异,相同输出概率低的函数对象 (FunctionObject)
(具名要求)
包含分配信息的类类型
(具名要求)
能以函数调用语法调用的对象
(具名要求)
定义了调用操作的类型
(具名要求)
有单参数,且不修改它,返回值可转换为 bool函数对象 (FunctionObject)
(具名要求)
有双参数,且不修改它,返回值可转换为 bool函数对象 (FunctionObject)
(具名要求)
建立顺序关系的二元谓词 (BinaryPredicate)
(具名要求)

容器

允许通过迭代器访问元素的数据结构
(具名要求)
使用双向迭代器的容器
(具名要求)
使用分配器的容器
(具名要求)
元素线性存储的容器
(具名要求)
元素存储于相邻内存地址的容器
(具名要求)
通过将元素关联到关键存储它们的容器
(具名要求)
通过将元素关联到关键以将它们存储于桶中的容器
(具名要求)
容器元素
可在未初始化存储默认构造的元素
(具名要求)
可在未初始化存储中复制构造的元素
(具名要求)
可在未初始化存储中移动构造的函数
(具名要求)
可在未初始化存储中构造的元素
(具名要求)
(C++11)
可用分配器销毁的元素
(具名要求)

迭代器

在一些数据结构内访问数据的通用概念
(具名要求)
可用于读数据的迭代器
(具名要求)
可用于写数据的迭代器
(具名要求)
可用于多次读数据的迭代器
(具名要求)
可增减的迭代器
(具名要求)
可在常数时间内增加的迭代器
(具名要求)
指向相继分配元素的迭代器
(具名要求)
能在常量表达式求值中使用的迭代器
(具名要求)

流 I/O 函数

不跳过前导空格并对处理字符计数的流输入函数
(具名要求)
跳过前导空格的流输入函数
(具名要求)
基本流输出函数
(具名要求)
设置失败位并返回流引用的流输出函数
(具名要求)

随机数生成

投入一个整数序列,产出一个 32 位无符号值的序列
(具名要求)
返回均匀分布的随机无符号整数
(具名要求)
由种子定义的确定性均匀随机位生成器 (UniformRandomBitGenerator)
(具名要求)
转换另一个随机数引擎 (RandomNumberEngine) 输出的随机数引擎 (RandomNumberEngine)
(具名要求)
返回服从给定数学概率密度分布函数的随机数
(具名要求)

并发

为执行代理(即线程)提供独占所有权语义
(具名要求)
(C++11)
支持有意锁获取的基础可锁 (BasicLockable)
(具名要求)
支持定时锁获取的可锁 (Lockable)
(具名要求)
(C++11)
保护数据免受数据竞争和顺序一致同步影响的可锁 (Lockable)
(具名要求)
保护数据免受数据竞争和顺序一致同步影响的定时可锁 (TimedLockable)
(具名要求)
支持共享所有权语义的互斥 (Mutex)
(具名要求)
支持共享所有权语义的定时互斥 (TimedMutex)
(具名要求)

其他

描述类型的属性
(具名要求)
描述二个类型间的关系
(具名要求)
修改类型属性
(具名要求)
(C++11)
聚合时长、时间点,和获取当前时间点的函数
(具名要求)
不抛异常的时钟 (Clock)
(具名要求)
为字符类型定义类型和函数
(具名要求)
位集、整数或枚举
(具名要求)
初始化效率上等于赋值的类型
(具名要求)
正则表达式库定义类型和函数
(具名要求)
拥有 constexpr 构造函数的类型
(具名要求)