Namespaces
Variants

C++ named requirements: BinaryPredicate

From fr.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 s'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>)
recherche la dernière séquence d'éléments dans une plage
(gabarit de fonction & objet fonction d'algorithme)
recherche l'un des éléments d'un ensemble
(gabarit de fonction & objet fonction d'algorithme)
recherche les deux premiers éléments adjacents qui sont égaux (ou satisfont un prédicat donné)
(gabarit de fonction & objet fonction d'algorithme)
recherche la première position où deux plages diffèrent
(gabarit de fonction & objet fonction d'algorithme)
détermine si deux ensembles d'éléments sont identiques
(gabarit de fonction & objet fonction d'algorithme)
détermine si une séquence est une permutation d'une autre séquence
(gabarit de fonction & objet fonction d'algorithme)
recherche la première occurrence d'une plage d'éléments
(gabarit de fonction & objet fonction d'algorithme)
recherche la première occurrence d'un certain nombre de copies consécutives d'un élément dans une plage
(gabarit de fonction & objet fonction d'algorithme)
supprime les éléments dupliqués consécutifs dans une plage
(gabarit de fonction & objet fonction d'algorithme)
crée une copie d'une plage d'éléments sans doublons consécutifs
(gabarit de fonction & objet fonction d'algorithme)
(obsolète en C++17)(supprimé en C++20)
construit un objet personnalisé std::binary_negate
(gabarit de fonction)
collection de clés uniques, hachées par les clés
(gabarit de classe)
collection de paires clé-valeur, hachées par les clés, les clés sont uniques
(gabarit de classe)
collection de clés, hachées par les clés
(gabarit de classe)
collection de paires clé-valeur, hachées par les clés
(gabarit 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