std::predicate
Определено в заголовке <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 концепций стандартной библиотеки, должны быть сохраняющими равенство (кроме случаев, указанных в противном случае).
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/concepts/predicate