标准库头文件 <concepts>

来自cppreference.com
< cpp‎ | header
 
 
 

此头文件是概念库的一部分。

目录

概念

核心语言概念
(C++20)
指定类型与另一类型相同
(概念) [编辑]
指定一个类型派生自另一类型
(概念) [编辑]
指定一个类型能隐式转换成另一类型
(概念) [编辑]
指定二个类型共享共用引用类型
(概念) [编辑]
(C++20)
指定二个类型共享共用类型
(概念) [编辑]
(C++20)
指定类型为整数类型
(概念) [编辑]
指定类型为有符号的整数类型
(概念) [编辑]
指定类型为无符号的整数类型
(概念) [编辑]
指定类型能从另一类型赋值
(概念) [编辑]
指定一个类型能交换,或二个类型能彼此交换
(概念) [编辑]
指定能销毁该类型的对象
(概念) [编辑]
指定该类型变量能从参数类型的集合构造,或绑定到它
(概念) [编辑]
指定能默认构造一个类型的对象
(概念) [编辑]
指定能移动构造一个类型的对象
(概念) [编辑]
指定能复制构造和移动构造一个类型的对象
(概念) [编辑]
比较概念
(C++20)
指定类型能用于布尔语境
(概念) [编辑]
指定运算符 == 为等价关系
(概念) [编辑]
指定比较运算符在该类型上产生全序
(概念) [编辑]
对象概念
(C++20)
指定能移动及交换一个类型的对象
(概念) [编辑]
(C++20)
指定能复制、移动及交换一个类型的对象
(概念) [编辑]
指定能赋值、移动、交换及默认构造一个类型的对象
(概念) [编辑]
(C++20)
指定类型为正规,即它既为 Semiregular 亦为 EqualityComparable
(概念) [编辑]
可调用概念
指定能以给定的参数类型集调用该类型
(概念) [编辑]
(C++20)
指定可调用类型为布尔谓词
(概念) [编辑]
(C++20)
指定可调用类型为二元关系
(概念) [编辑]
指定 Relation 强加严格弱序
(概念) [编辑]


[编辑] 概要

namespace std { 
 
    // 核心语言概念
 
    template <class T, class U>
    concept Same = /* see description */;
 
    template <class Derived, class Base>
    concept DerivedFrom = /* see description */;
 
    template <class From, class To>
    concept ConvertibleTo = /* see description */;
 
    template <class T, class U>
    concept CommonReference = /* see description */;
 
    template <class T, class U>
    concept Common = /* see description */;
 
    template <class T>
    concept Integral = /* see description */;
 
    template <class T>
    concept SignedIntegral = /* see description */;
 
    template <class T>
    concept UnsignedIntegral = /* see description */;
 
    template <class LHS, class RHS>
    concept Assignable = /* see description */;
 
    template <class T>
    concept Swappable = /* see description */;
 
    template <class T, class U>
    concept SwappableWith = /* see description */;
 
    template <class T>
    concept Destructible = /* see description */;
 
    template <class T, class... Args>
    concept Constructible = /* see description */;
 
    template <class T>
    concept DefaultConstructible = /* see description */;
 
    template <class T>
    concept MoveConstructible = /* see description */;
 
    template <class T>
    concept CopyConstructible = /* see description */;
 
    // 比较概念
 
    template <class B>
    concept Boolean = /* see description */;
 
    template <class T>
    concept EqualityComparable = /* see description */;
    template <class T, class U>
    concept EqualityComparableWith = /* see description */;
 
    template <class T>
    concept StrictTotallyOrdered = /* see description */;
    template <class T, class U>
    concept StrictTotallyOrderedWith = /* see description */;
 
    // 对象概念
 
    template <class T>
    concept Movable = /* see description */;
 
    template <class T>
    concept Copyable = /* see description */;
 
    template <class T>
    concept Semiregular = /* see description */;
 
    template <class T>
    concept Regular = /* see description */;
 
    // 可调用概念
 
    template <class F, class... Args>
    concept Invocable = /* see description */;
 
    template <class F, class... Args>
    concept RegularInvocable = /* see description */;
 
    template <class F, class... Args>
    concept Predicate = /* see description */;
 
    template <class R, class T, class U>
    concept Relation = /* see description */;
 
    template <class R, class T, class U>
    concept StrictWeakOrder = /* see description */;
}