实验性库头文件 <experimental/ranges/concepts>
来自 cppreference.cn
< cpp | header | experimental
此头文件是ranges库的一部分。
目录 |
[edit] 核心语言概念
定义于命名空间
std::experimental::ranges | |
指定一个类型与另一个类型相同 (概念) | |
指定一个类型派生自另一个类型 (概念) | |
指定一个类型可以隐式转换为另一个类型 (概念) | |
指定两个类型共享一个公共引用类型 (概念) | |
指定两个类型共享一个公共类型 (概念) | |
指定一个类型是整型 (概念) | |
指定一个类型是有符号整型 (概念) | |
指定一个类型是无符号整型 (概念) | |
指定一个类型可以从另一个类型赋值 (概念) | |
指定一个类型可以被交换,或者两个类型可以互相交换 (概念) |
[edit] 比较概念
定义于命名空间
std::experimental::ranges | |
指定一个类型可以用于布尔上下文 (概念) | |
指定两个类型可以使用运算符 == 和 != 比较相等性 (概念) | |
指定运算符 == 是等价关系 (概念) | |
指定该类型的比较运算符产生全序关系 (概念) |
[edit] 对象概念
定义于命名空间
std::experimental::ranges | |
指定该类型的对象可以被销毁 (概念) | |
指定该类型的变量可以从一组参数类型构造或绑定 (概念) | |
指定该类型的对象可以默认构造 (概念) | |
指定该类型的对象可以移动构造 (概念) | |
指定该类型的对象可以拷贝构造和移动构造 (概念) | |
指定该类型的对象可以被移动和交换 (概念) | |
指定该类型的对象可以被拷贝、移动和交换 (概念) | |
指定该类型的对象可以被拷贝、移动、交换和默认构造 (概念) | |
指定一个类型是 Regular 的,即,它既是 Semiregular 也是 EqualityComparable (概念) |
[edit] 可调用概念
定义于命名空间
std::experimental::ranges | |
指定一个可调用类型可以使用给定的一组参数类型调用 (概念) | |
指定一个可调用类型是布尔谓词 (概念) | |
指定一个可调用类型是二元关系 (概念) | |
指定一个 Relation 施加严格弱序关系(概念) |
[edit] 概要
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 */; }}}}