Namespaces
Variants

std:: predicate

From cppreference.net
定義先ヘッダ <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... > は、 F Args... によってエンコードされた型と値カテゴリを持つ引数を受け入れる述語であることを指定します。つまり、これらの引数で呼び出して boolean-testable な結果を生成できます。

regular_invocable は、呼び出し可能オブジェクトおよび引数のいずれも変更せず、かつ equality-preserving であることを要求することに注意してください。

等価性保存

標準ライブラリコンセプトの requires expressions で宣言される式は、 equality-preserving であることが要求されます(特に明記されている場合を除く)。

参考文献

  • C++23規格 (ISO/IEC 14882:2024):
  • 18.7.4 コンセプト predicate [concept.predicate]
  • C++20標準 (ISO/IEC 14882:2020):
  • 18.7.4 コンセプト predicate [concept.predicate]