Namespaces
Variants

std:: predicate

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

concept predicate =
std:: regular_invocable < F, Args... > &&

boolean-testable < std:: invoke_result_t < F, Args... >> ;
(depuis C++20)

Le concept std :: 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-testable .

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

Préservation de l'égalité

Les expressions déclarées dans les requires expressions des concepts de la bibliothèque standard doivent être equality-preserving (sauf indication contraire).

Références

  • Norme C++23 (ISO/CEI 14882:2024) :
  • 18.7.4 Concept predicate [concept.predicate]
  • Norme C++20 (ISO/CEI 14882:2020) :
  • 18.7.4 Concept predicate [concept.predicate]