Namespaces
Variants

std::experimental::ranges:: Predicate

From cppreference.net
Défini dans l'en-tête <experimental/ranges/concepts>
template < class F, class ... Args >

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

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

Le concept Predicate<F, Args...> spécifie que F est un prédicat qui accepte des arguments dont les types et catégories de valeurs sont encodés par Args... , c'est-à-dire qu'il peut être invoqué avec ces arguments pour produire un résultat Boolean .

Notez que RegularInvocable requiert que l'invocation ne modifie ni l'objet appelable ni les arguments et soit préservatrice d'égalité.

Préservation de l'égalité

Une expression est préservatrice d'égalité si elle produit des résultats égaux pour des entrées égales.

  • Les entrées d'une expression consistent en ses opérandes.
  • Les sorties d'une expression consistent en son résultat et tous les opérandes modifiés par l'expression (le cas échéant).

Toute expression devant préserver l'égalité doit en outre être stable : deux évaluations d'une telle expression avec les mêmes objets d'entrée doivent produire des sorties égales en l'absence de toute modification explicite intervenant entre-temps sur ces objets d'entrée.