std::experimental::ranges:: Predicate
|
Определено в заголовке
<experimental/ranges/concepts>
|
||
|
template
<
class
F,
class
...
Args
>
concept
bool
Predicate
=
|
(ranges TS) | |
Концепт
Predicate<F, Args...>
определяет, что
F
является предикатом, принимающим аргументы, чьи типы и категории значений закодированы в
Args...
, то есть он может быть вызван с этими аргументами для получения
Boolean
результата.
Обратите внимание, что
RegularInvocable
требует, чтобы вызов не изменял ни вызываемый объект, ни аргументы и был сохраняющим равенство.
Сохранение равенства
Выражение называется сохраняющим равенство если оно даёт равные результаты при равных входных данных.
- Входные данные выражения состоят из его операндов.
- Выходные данные выражения состоят из его результата и всех операндов, измененных выражением (если таковые имеются).
Каждое выражение, которое должно сохранять равенство, дополнительно должно быть стабильным : два вычисления такого выражения с одинаковыми входными объектами должны давать равные результаты при отсутствии каких-либо явных изменений этих входных объектов между вычислениями.