C++ 具名要求

2023-12-31 16:20
文章标签 c++ 要求 具名

本文主要是介绍C++ 具名要求,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

基本概念

DefaultConstructible可默认构造

指定该类型对象可以默认构造
(具名要求)

MoveConstructible可移动构造

(C++11)

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

CopyConstructible可复制构造

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

MoveAssignable可移动赋值

(C++11)

指定该类型对象可以从右值赋值
(具名要求)

CopyAssignable可复制赋值

指定该类型对象可以从左值赋值
(具名要求)

Destructible可析构

指定该对象可以析构
(具名要求)

 

基本概念

DefaultConstructible可默认构造

指定该类型对象可以默认构造
(具名要求)

MoveConstructible可移动构造

(C++11)

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

CopyConstructible可复制构造

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

MoveAssignable可移动赋值

(C++11)

指定该类型对象可以从右值赋值
(具名要求)

CopyAssignable可复制赋值

指定该类型对象可以从左值赋值
(具名要求)

Destructible可析构

指定该对象可以析构
(具名要求)

 

全库范围的概念

EqualityComparable可相等比较

operator== 是一种等价关系
(具名要求)

LessThanComparable可小于比较

operator< 是一种严格弱序关系
(具名要求)

Swappable可交换

(C++11)

可用无限定的非成员函数调用 swap() 进行交换的类型
(具名要求)

ValueSwappable值可交换

(C++11)

解引用为某种可交换 (Swappable) 类型的遗留迭代器 (LegacyIterator)
(具名要求)

NullablePointer可空指针

(C++11)

支持空值的指针式类型
(具名要求)

Hash散列

(C++11)

函数对象 (FunctionObject) ,对于不同输入值产生相同输出具有很低概率
(具名要求)

Allocator分配器

包含分配信息的类类型
(具名要求)

FunctionObject函数对象

能以函数调用语法进行调用的对象
(具名要求)

Callable可调用

定义了调用操作的类型
(具名要求)

Predicate谓词

函数对象 (FunctionObject) ,对于一个实参,返回一个可转换为 bool 的值而不改动实参
(具名要求)

BinaryPredicate二元谓词

函数对象 (FunctionObject) ,对于两个实参,返回一个可转换为 bool 的值而不改动各实参
(具名要求)

Compare比较

建立一种顺序关系的二元谓词 (BinaryPredicate)
(具名要求)

 

容器

Container容器

允许通过迭代器访问元素的数据结构
(具名要求)

ReversibleContainer可逆容器

使用双向迭代器的容器
(具名要求)

AllocatorAwareContainer具分配器容器

(C++11)

使用分配器的容器
(具名要求)

SequenceContainer序列容器

线性存储各元素的容器
(具名要求)

ContiguousContainer连续容器

(C++17)

在相邻内存地址中存储各元素的容器
(具名要求)

AssociativeContainer关联容器

将元素与键相关联而存储它们的容器
(具名要求)

UnorderedAssociativeContainer无序关联容器

(C++11)

将元素与键关联并将它们存储于桶中的容器
(具名要求)

 

容器元素

DefaultInsertable可默认插入

(C++11)

可在未初始化存储中默认构造的元素
(具名要求)

CopyInsertable可复制插入

(C++11)

可在未初始化存储中复制构造的元素
(具名要求)

MoveInsertable可移动插入

(C++11)

可在未初始化存储中移动构造的函数
(具名要求)

EmplaceConstructible可就位构造

(C++11)

可在未初始化存储中构造的元素
(具名要求)

Erasable可擦除

(C++11)

可用分配器销毁的元素
(具名要求)

迭代器

LegacyIterator遗留迭代器

在一些数据结构内访问数据的通用概念
(具名要求)

LegacyInputIterator遗留输入迭代器

可用于读数据的迭代器
(具名要求)

LegacyOutputIterator遗留输出迭代器

可用于写数据的迭代器
(具名要求)

LegacyForwardIterator遗留向前迭代器

可用于多次读数据的迭代器
(具名要求)

LegacyBidirectionalIterator遗留双向迭代器

可增可减的迭代器
(具名要求)

LegacyRandomAccessIterator遗留随机访问迭代器

可在常数时间内增加的迭代器
(具名要求)

LegacyContiguousIterator遗留连续迭代器

(C++17)

指向连续分配元素的迭代器
(具名要求)

ConstexprIterator常量表达式迭代器

(C++20)

能在常量表达式求值中使用的迭代器
(具名要求)

 

流 I/O 函数

UnformattedInputFunction无格式输入函数

不跳过前导空格并对处理字符计数的流输入函数
(具名要求)

FormattedInputFunction有格式输入函数

跳过前导空格的流输入函数
(具名要求)

UnformattedOutputFunction无格式输出函数

基本流输出函数
(具名要求)

FormattedOutputFunction有格式输出函数

出错时设置失败位并返回流引用的流输出函数
(具名要求)

随机数生成

SeedSequence种子序列

(C++11)

消耗一个整数序列,产出一个 32 位无符号值的序列
(具名要求)

UniformRandomBitGenerator均匀随机位生成器

(C++11)

返回均匀分布的随机无符号整数
(具名要求)

RandomNumberEngine随机数引擎

(C++11)

由种子定义的确定性均匀随机位生成器 (UniformRandomBitGenerator)
(具名要求)

RandomNumberEngineAdaptor随机数引擎适配器

(C++11)

对另一个随机数引擎 (RandomNumberEngine) 的输出进行变换的随机数引擎 (RandomNumberEngine)
(具名要求)

RandomNumberDistribution随机数分布

(C++11)

返回服从给定数学概率密度函数分布的随机数
(具名要求)

 

并发

BasicLockable基本可锁定

(C++11)

为执行代理(即线程)提供排他所有权语义
(具名要求)

Lockable可锁定

(C++11)

支持尝试进行锁获取基本可锁定 (BasicLockable)
(具名要求)

TimedLockable可定时锁定

(C++11)

支持定时锁获取的可锁定 (Lockable)
(具名要求)

Mutex互斥体

(C++11)

提供免受数据竞争的保护和顺序一致同步操作的可锁定 (Lockable)
(具名要求)

TimedMutex定时互斥体

(C++11)

提供免受数据竞争的保护和顺序一致同步操作的可定时锁定 (TimedLockable)
(具名要求)

SharedMutex共享互斥体

(C++17)

支持共享所有权语义的互斥体 (Mutex)
(具名要求)

SharedTimedMutex共享定时互斥体

(C++14)

支持共享所有权语义的定时互斥体 (TimedMutex)
(具名要求)

 

其他

UnaryTypeTrait一元类型特征

(C++11)

描述一个类型的一项性质
(具名要求)

BinaryTypeTrait二元类型特征

(C++11)

描述两个类型间的一种关系
(具名要求)

TransformationTrait变换特征

(C++11)

修改一个类型的一项性质
(具名要求)

Clock时钟

(C++11)

聚合一种时长,一种时间点,和一个获取当前时间点的函数
(具名要求)

TrivialClock平凡时钟

(C++11)

不抛异常的时钟 (Clock)
(具名要求)

CharTraits字符特征

为字符类型定义一些类型和函数
(具名要求)

BitmaskType位掩码类型

位集合、整数或枚举
(具名要求)

NumericType数值类型

初始化效率相当于赋值的类型
(具名要求)

RegexTraits正则表达式特征

(C++11)

定义正则表达式库所使用的各个类型和函数
(具名要求)

LiteralType字面类型

(C++11)

拥有 constexpr 构造函数的类型
(具名要求)

这篇关于C++ 具名要求的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/556560

相关文章

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

C++中实现调试日志输出

《C++中实现调试日志输出》在C++编程中,调试日志对于定位问题和优化代码至关重要,本文将介绍几种常用的调试日志输出方法,并教你如何在日志中添加时间戳,希望对大家有所帮助... 目录1. 使用 #ifdef _DEBUG 宏2. 加入时间戳:精确到毫秒3.Windows 和 MFC 中的调试日志方法MFC

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

C++包装器

包装器 在 C++ 中,“包装器”通常指的是一种设计模式或编程技巧,用于封装其他代码或对象,使其更易于使用、管理或扩展。包装器的概念在编程中非常普遍,可以用于函数、类、库等多个方面。下面是几个常见的 “包装器” 类型: 1. 函数包装器 函数包装器用于封装一个或多个函数,使其接口更统一或更便于调用。例如,std::function 是一个通用的函数包装器,它可以存储任意可调用对象(函数、函数

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

06 C++Lambda表达式

lambda表达式的定义 没有显式模版形参的lambda表达式 [捕获] 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 有显式模版形参的lambda表达式 [捕获] <模版形参> 模版约束 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 含义 捕获:包含零个或者多个捕获符的逗号分隔列表 模板形参:用于泛型lambda提供个模板形参的名