Namespaces
Variants

C++ named requirements: BinaryPredicate

From cppreference.net
C++ named requirements

BinaryPredicate est un ensemble d'exigences attendues par certaines fonctionnalités de la bibliothèque standard pour les arguments fournis par l'utilisateur.

Étant donné un BinaryPredicate bin_pred et une paire d'itérateurs iter1 et iter2 ou un itérateur iter et une valeur (éventuellement const ) value , le type et la catégorie de valeur de l'expression bin_pred ( * iter1, * iter2 ) ou, respectivement, bin_pred ( * iter, value ) , doivent satisfaire aux exigences BooleanTestable .

De plus, l'évaluation de cette expression n'est pas autorisée à appeler des fonctions membres non constantes des itérateurs déréférencés ; syntaxiquement, le prédicat doit accepter const des arguments d'objet, avec le même comportement que ses arguments soient const ou non- const .

Exigences

Bibliothèque standard

Les fonctionnalités suivantes de la bibliothèque standard attendent un BinaryPredicate qui n'est pas un type Compare .

supprime les éléments dupliqués consécutifs
(fonction membre publique de std::forward_list<T,Allocator> )
supprime les éléments dupliqués consécutifs
(fonction membre publique de std::list<T,Allocator> )
trouve la dernière séquence d'éléments dans une certaine plage
(modèle de fonction)
recherche l'un quelconque d'un ensemble d'éléments
(modèle de fonction)
trouve les deux premiers éléments adjacents qui sont égaux (ou satisfont un prédicat donné)
(modèle de fonction)
trouve la première position où deux plages diffèrent
(modèle de fonction)
détermine si deux ensembles d'éléments sont identiques
(modèle de fonction)
détermine si une séquence est une permutation d'une autre séquence
(modèle de fonction)
recherche la première occurrence d'une plage d'éléments
(modèle de fonction)
recherche la première occurrence d'un nombre de copies consécutives d'un élément dans une plage
(modèle de fonction)
supprime les éléments dupliqués consécutifs dans une plage
(modèle de fonction)
crée une copie d'une plage d'éléments qui ne contient pas de doublons consécutifs
(modèle de fonction)
(obsolète en C++17) (supprimé en C++20)
construit un objet std::binary_negate personnalisé
(modèle de fonction)
collection de clés uniques, hachées par clés
(modèle de classe)
collection de paires clé-valeur, hachées par clés, clés uniques
(modèle de classe)
collection de clés, hachées par clés
(modèle de classe)
collection de paires clé-valeur, hachées par clés
(modèle de classe)

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 2114
( P2167R3 )
C++98 la convertibilité des types de retour vers bool était trop faible
pour refléter les attentes des implémentations
exigences renforcées
LWG 3031 C++98 les exigences sur les valeurs const étaient insuffisantes exigences renforcées