实验库头文件 <experimental/ranges/concepts>
来自 cppreference.com
< cpp | header | experimental
此头文件是 范围 库的一部分。
内容 |
[编辑] 核心语言概念
定义在命名空间
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 */; }}}}