std::predicate
From cppreference.com
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Concepts library
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
predicate
(C++20)
(C++20)
(C++20)
(C++20)
Exposition-only concepts
(C++20)
Defined in header
<concepts>
template< class F, class... Args >
(since C++20)
concept predicate =
std::regular_invocable <F, Args...> &&
The concept std::predicate<F, Args...> specifies that F
is a predicate that accepts arguments whose types and value categories are encoded by Args...
, i.e., it can be invoked with these arguments to produce a boolean-testable
result.
Note that regular_invocable
requires the invocation to not modify either the callable object or the arguments and be equality-preserving.
[edit] Equality preservation
Expressions declared in requires expressions of the standard library concepts are required to be equality-preserving (except where stated otherwise).
[edit] References
- C++23 standard (ISO/IEC 14882:2024):
- 18.7.4 Concept
predicate
[concept.predicate]
- 18.7.4 Concept
- C++20 standard (ISO/IEC 14882:2020):
- 18.7.4 Concept
predicate
[concept.predicate]
- 18.7.4 Concept