名前付き要件: Predicate
提供: cppreference.com
Predicate 要件は述語、すなわち bool として判定可能な値を返す callable を記述します。
Predicate は一般的には、入力データ (個々のオブジェクトやコンテナ) と述語を取るアルゴリズムで使用され、その後の行動の方向を決定するために入力データに対して呼ばれます。 C++ 標準ライブラリにおける述語の用途の例には以下のものがあります。
- std::all_of、 std::any_of、 std::none_of —— 配列の要素と述語を入力として取ります。 個々の入力要素に対して述語を呼び、すべて、1個以上、0個の要素に対して述語が true を返した場合に true を返します。
- std::find_if —— 要素のシーケンスと述語を取ります。 述語が true と等しい値を返したシーケンス内の最初の要素を返します。
上で述べているアルゴリズムの説明は Predicate を簡単な言葉で説明することを目的とした大雑把なものです。 詳細な情報は個々のページを参照してください。
別の言い方をすると、アルゴリズムが Predicate pred
とイテレータ first
を取る場合、 if(pred(*first)) {...} のような構文を用いて与えられた述語を使用してそのイテレータ first
の指す型のオブジェクトを判定することができるべきです。
関数オブジェクト pred
は逆参照されたイテレータを通した任意の定数でない関数を適用してはなりません。 この関数オブジェクトは関数へのポインタかもしれませんし、適切な関数呼び出し演算子を持つ型のオブジェクトかもしれません。
[編集] 要件
This section is incomplete Reason: better describe actual requirements |