Spec-Zone.ru › C++

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 выражениях концептов стандартной библиотеки, должны сохранять равенство (если не указано иное).

Ссылки

  • Стандарт C++23 (ISO/IEC 14882:2024):
    • 18.7.4 Концепт predicate [concept.predicate]
  • Стандарт C++20 (ISO/IEC 14882:2020):
    • 18.7.4 Концепт predicate [concept.predicate]

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/concepts/predicate

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API