std::predicate
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <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 концептов стандартной библиотеки, должны сохранять равенство (если не указано иное).