std::predicate (C++20 起)

来自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...> 指定 F 是一种谓词,它接受由 Args... 编码类型和值类别的实参,即能以这些实参调用它并产生 boolean-testable 结果。

注意 regular_invocable 要求其调用既不修改可调用对象亦不修改实参,并保持相等性

相等性保持

标准库概念的 requires 表达式中声明的表达式都要求保持相等性(除非另外说明)。

引用

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