命名空间
变体
操作

std::predicate (自 C++20 起)

来自 cppreference.com
< cpp‎ | 概念
定义在头文件 <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]