名前空間
変種
操作

std::predicate

From cppreference.com
< cpp‎ | concepts
 
 
 
ヘッダ <concepts> で定義
template< class F, class... Args >

concept predicate =
    std::regular_invocable<F, Args...> &&

    boolean-testable<std::invoke_result_t<F, Args...>>;
(C++20以降)

コンセプト std::predicate<F, Args...> は、FArgs... によってエンコードされた引数の型と値カテゴリを受け入れる述語であることを指定します。つまり、これらの引数で呼び出されたときに boolean-testable な結果を生成できます。

なお、regular_invocable は、呼び出しが呼び出し可能オブジェクトまたは引数のいずれも変更しないこと、および 等価性を保存する ことを要求します。

[編集] 等価性保持

標準ライブラリのコンセプトのrequiresで宣言された式は、(特に明記されていない限り)等価性保持である必要があります。

[編集] 参照

  • C++23標準 (ISO/IEC 14882:2024)
  • 18.7.4 コンセプト predicate [concept.predicate]
  • C++20 standard (ISO/IEC 14882:2020)
  • 18.7.4 コンセプト predicate [concept.predicate]
English 日本語 中文(简体) 中文(繁體)