実験的ライブラリヘッダー <experimental/ranges/concepts>
From cppreference.com
< cpp | header | experimental
このヘッダーは、ranges ライブラリの一部です。
目次 |
[編集] コア言語コンセプト
std::experimental::ranges 名前空間で定義されます。 | |
| 型が別の型と同一であることを規定する (concept) | |
| 型が別の型から派生していることを規定する (concept) | |
| 型が別の型に暗黙的に変換可能であることを規定する (concept) | |
| 2つの型が共通の参照型を共有することを規定する (concept) | |
| 2つの型が共通の型を共有することを規定する (concept) | |
| 型が整数型であることを規定する (concept) | |
| 型が符号付き整数型であることを規定する (concept) | |
| 符号なしの整数型であることを指定します (concept) | |
| 型が別の型から代入可能であることを規定する (concept) | |
| 型が交換可能であること、または2つの型が互いに交換可能であることを規定する (concept) | |
[編集] 比較コンセプト
std::experimental::ranges 名前空間で定義されます。 | |
| 型が真偽値コンテキストで使用可能であることを規定する (concept) | |
| 演算子 == および != を使用して等価比較できる2つの型を指定します。 (concept) | |
| 演算子==が同値関係であることを規定する (concept) | |
| その型の比較演算子が全順序をもたらすことを規定する (concept) | |
[編集] オブジェクトコンセプト
std::experimental::ranges 名前空間で定義されます。 | |
| その型のオブジェクトが破棄可能であることを規定する (concept) | |
| その型の変数が、一連の引数型から構築可能、または束縛可能であることを規定する (concept) | |
| その型のオブジェクトがデフォルト構築可能であることを規定する (concept) | |
| その型のオブジェクトがムーブ構築可能であることを規定する (concept) | |
| その型のオブジェクトがコピー構築およびムーブ構築可能であることを規定する (concept) | |
| その型のオブジェクトがムーブおよび交換可能であることを規定する (concept) | |
| その型のオブジェクトがコピー、ムーブ、および交換可能であることを規定する (concept) | |
| その型のオブジェクトがコピー、ムーブ、交換、およびデフォルト構築可能であることを規定する (concept) | |
Semiregular かつ EqualityComparable である、つまり、通常の型であることを指定します。(concept) | |
[編集] 呼び出し可能コンセプト
std::experimental::ranges 名前空間で定義されます。 | |
| 呼び出し可能型が、与えられた一連の引数型で呼び出し可能であることを規定する (concept) | |
| 呼び出し可能型が真偽値を返す述語 (Boolean predicate) であることを規定する (concept) | |
| 呼び出し可能型が二項関係 (binary relation) であることを規定する (concept) | |
Relation が厳密弱順序を課すことを指定します。(concept) | |
[編集] シノプシス
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 */; }}}}