Espacios de nombres
Variantes

std::predicate

De cppreference.com
Definido en el archivo de encabezado <concepts>
template < class F, class... Args >
concept predicate =
  std::regular_invocable<F, Args...> &&
  boolean-testable<std::invoke_result_t<F, Args...>>;
(desde C++20)

El concepto predicate<F, Args...> especifica que F es un predicado que acepta argumentos cuyos tipos y categorías de valor están codificados por Args..., es decir, puede ser invocado con estos argumentos para producir un resultado boolean-testable.

Observa que regular_invocable requiere que la invocación no modifique ni el objeto invocable, ni los argumentos, y conserve la igualdad.

Conservación de la igualdad

Una expresión es conservadora de igualdad si resulta en salidas iguales dadas entradas iguales.

  • Las entradas de una expresión consisten en sus operandos.
  • Las salidas de una expresión consisten en su resultado y todos los operandos modificados por la expresión (si es que los hay).

Cada expresión que se requiere sea conservadora de igualdad, se requiere además que sea estable: dos evaluaciones de tal expresión con los mismos objetos de entrada debe tener salidas iguales si no se encuentra alguna modificación interventora de esos objetos de entrada.

Morty Proxy This is a proxified and sanitized view of the page, visit original site.