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 要求调用过程既不修改可调用对象也不修改参数,并且需要满足 等值保持性

等值保持性

标准库概念的 requires 表达式 中声明的表达式必须满足 等值保持 要求(除非另有说明)。

参考文献

  • C++23 标准 (ISO/IEC 14882:2024):
  • 18.7.4 概念 predicate [concept.predicate]
  • C++20 标准 (ISO/IEC 14882:2020):
  • 18.7.4 概念 predicate [concept.predicate]