C++ named requirements: BinaryPredicate
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
- Predicate
- CopyConstructible (sauf indication contraire)
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) |
|
|
(C++11)
|
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) |
|
(C++11)
|
collection de clés uniques, hachées par clés
(modèle de classe) |
|
(C++11)
|
collection de paires clé-valeur, hachées par clés, clés uniques
(modèle de classe) |
|
(C++11)
|
collection de clés, hachées par clés
(modèle de classe) |
|
(C++11)
|
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 |