Namespaces
Variants

std::experimental::ranges:: Predicate

From cppreference.net
Definido en el encabezado <experimental/ranges/concepts>
template < class F, class ... Args >

concept bool Predicate =
RegularInvocable < F, Args... > &&

Boolean < std:: result_of_t < F && ( Args && ... ) >> ;
(ranges TS)

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 .

Tenga en cuenta que RegularInvocable requiere que la invocación no modifique ni el objeto invocable ni los argumentos y que sea igualdad-preservante.

Preservación de la igualdad

Una expresión es equality preserving si produce 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 los hay).

Toda expresión que deba preservar la igualdad debe además ser estable : dos evaluaciones de dicha expresión con los mismos objetos de entrada deben producir salidas iguales, a menos que exista una modificación explícita e intermedia de esos objetos de entrada.