实验性库头文件 <experimental/ranges/concepts>
来自 cppreference.cn
此头文件是 ranges 库的一部分。
目录 |
[编辑] 核心语言概念
定义于命名空间
std::experimental::ranges | |
指定类型与另一类型相同 (概念) | |
指定类型派生自另一类型 (概念) | |
指定类型可隐式转换为另一类型 (概念) | |
指定两种类型共享一个共同的引用类型 (概念) | |
指定两种类型共享一个共同的类型 (概念) | |
指定类型是整型 (概念) | |
指定类型是带符号的整型 (概念) | |
指定一个类型是无符号的整型 (概念) | |
指定类型可从另一类型赋值 (概念) | |
指定类型可以被交换,或者两种类型可以互相交换 (概念) |
[编辑] 比较概念
定义于命名空间
std::experimental::ranges | |
指定类型可以在布尔上下文中使用 (概念) | |
指定两个类型可以使用运算符 == 和 != 进行相等比较 (概念) | |
指定运算符 == 是等价关系 (概念) | |
指定类型上的比较运算符产生全序关系 (概念) |
[编辑] 对象概念
定义于命名空间
std::experimental::ranges | |
指定该类型的对象可以被销毁 (概念) | |
指定该类型的变量可以从一组参数类型构造或绑定 (概念) | |
指定类型的对象可以默认构造 (概念) | |
指定类型的对象可以被移动构造 (概念) | |
指定类型的对象可以被复制构造和移动构造 (概念) | |
指定类型的对象可以被移动和交换 (概念) | |
指定类型的对象可以被复制、移动和交换 (概念) | |
指定类型的对象可以被复制、移动、交换和默认构造 (概念) | |
指定一个类型是常规的,即它既是 Semiregular 又是 EqualityComparable (概念) |
[编辑] 可调用概念
定义于命名空间
std::experimental::ranges | |
指定可调用类型可以使用给定的一组参数类型进行调用 (概念) | |
指定可调用类型是布尔谓词 (概念) | |
指定可调用类型是二元关系 (概念) | |
指定一个 Relation 施加严格弱序(概念) |
[编辑] 概要
namespace std { namespace experimental { namespace ranges { inline namespace v1 { template <class T, class U> concept bool Same = /* see definition */; template <class T, class U> concept bool DerivedFrom = /* see definition */; template <class T, class U> concept bool ConvertibleTo = /* see definition */; template <class T, class U> concept bool CommonReference = /* see definition */; template <class T, class U> concept bool Common = /* see definition */; template <class T> concept bool Integral = /* see definition */; template <class T> concept bool SignedIntegral = /* see definition */; template <class T> concept bool UnsignedIntegral = /* see definition */; template <class T, class U> concept bool Assignable = /* see definition */; template <class T> concept bool Swappable = /* see definition */; template <class T, class U> concept bool SwappableWith = /* see definition */; template <class T> concept bool Destructible = /* see definition */; template <class T, class... Args> concept bool Constructible = /* see definition */; template <class T> concept bool DefaultConstructible = /* see definition */; template <class T> concept bool MoveConstructible = /* see definition */; template <class T> concept bool CopyConstructible = /* see definition */; template <class B> concept bool Boolean = /* see definition */; template <class T, class U> concept bool WeaklyEqualityComparableWith = /* see definition */; template <class T> concept bool EqualityComparable = /* see definition */; template <class T, class U> concept bool EqualityComparableWith = /* see definition */; template <class T> concept bool StrictTotallyOrdered = /* see definition */; template <class T, class U> concept bool StrictTotallyOrderedWith = /* see definition */; template <class T> concept bool Movable = /* see definition */; template <class T> concept bool Copyable = /* see definition */; template <class T> concept bool Semiregular = /* see definition */; template <class T> concept bool Regular = /* see definition */; template <class F, class... Args> concept bool Invocable = /* see definition */; template <class F, class... Args> concept bool RegularInvocable = /* see definition */; template <class F, class... Args> concept bool Predicate = /* see definition */; template <class R, class T, class U> concept bool Relation = /* see definition */; template <class R, class T, class U> concept bool StrictWeakOrder = /* see definition */; }}}}