std::experimental::ranges::Predicate
From cppreference.com
< cpp | experimental | ranges
| Defined in header <experimental/ranges/concepts> |
||
| template< class F, class... Args > concept bool Predicate = |
(ranges TS) | |
コンセプトPredicate<F, Args...>は、Fが引数を受け取る述語であり、その引数の型と値カテゴリはArgs...によってエンコードされていることを指定します。つまり、これらの引数で呼び出すことでBooleanの結果を生成できます。
RegularInvocableは、呼び出しが呼び出し可能オブジェクトまたは引数を変更しないこと、および等価性を保持することを要求することに注意してください。
[編集] 等価性保持
式が**等価性保持**であるとは、等しい入力に対して等しい出力を生成することを意味します。
- 式の入力は、そのオペランドで構成されます。
- 式の出力は、その結果と、式によって変更されたすべてのオペランド(存在する場合)で構成されます。
等価性保持が要求されるすべての式は、さらに**安定**である必要があります。同じ入力オブジェクトでそのような式の2回の評価は、これらの入力オブジェクトの明示的な介入的な変更がない限り、等しい出力を持ちます。