命名空间
变体
操作

std::predicate

来自 cppreference.cn
定义于头文件 <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]