C++ named requirements: BinaryPredicate
BinaryPredicate ist eine Reihe von Anforderungen, die von einigen Standardbibliothek-Komponenten von den benutzerbereitgestellten Argumenten erwartet werden.
Gegeben ein
BinaryPredicate
bin_pred
und ein Paar von Iteratoren
iter1
und
iter2
oder ein Iterator
iter
und ein (möglicherweise
const
) Wert
value
, müssen der Typ und die Wertkategorie des Ausdrucks
bin_pred
(
*
iter1,
*
iter2
)
oder entsprechend
bin_pred
(
*
iter, value
)
die
BooleanTestable
Anforderungen erfüllen.
Darüber hinaus darf die Auswertung dieses Ausdrucks keine nicht-konstanten Memberfunktionen der dereferenzierten Iteratoren aufrufen; syntaktisch muss das Prädikat
const
-Objektargumente akzeptieren, mit demselben Verhalten unabhängig davon, ob seine Argumente
const
oder nicht-
const
sind.
Anforderungen
- Predicate
- CopyConstructible (sofern nicht anders angegeben)
Standardbibliothek
Die folgenden Standardbibliothekseinrichtungen erwarten einen BinaryPredicate, der kein Compare-Typ ist.
| entfernt aufeinanderfolgende doppelte Elemente (öffentliche Memberfunktion von std::forward_list<T,Allocator>)
| |
| entfernt aufeinanderfolgende doppelte Elemente (öffentliche Memberfunktion von std::list<T,Allocator>)
| |
| findet die letzte Sequenz von Elementen in einem bestimmten Bereich (Funktionsschablone & Algorithmus-Funktionsobjekt) | |
(C++20) |
|
| sucht nach einem beliebigen Element einer Menge (Funktionsschablone & Algorithmus-Funktionsobjekt) | |
(C++20) |
|
| findet die ersten beiden benachbarten Elemente, die gleich sind (oder ein gegebenes Prädikat erfüllen) (Funktionsschablone & Algorithmus-Funktionsobjekt) | |
(C++20) |
|
| findet die erste Position, an der sich zwei Bereiche unterscheiden (Funktionsschablone & Algorithmus-Funktionsobjekt) | |
(C++20) |
|
| bestimmt, ob zwei Mengen von Elementen gleich sind (Funktionsschablone & Algorithmus-Funktionsobjekt) | |
(C++20) |
|
(C++11) |
bestimmt, ob eine Sequenz eine Permutation einer anderen Sequenz ist (Funktionsschablone & Algorithmus-Funktionsobjekt) |
(C++20) |
|
| sucht nach dem ersten Vorkommen einer Reihe von Elementen (Funktionsschablone & Algorithmus-Funktionsobjekt) | |
(C++20) |
|
| sucht nach dem ersten Vorkommen einer Anzahl aufeinanderfolgender Kopien eines Elements in einem Bereich (Funktionsschablone & Algorithmus-Funktionsobjekt) | |
(C++20) |
|
| entfernt aufeinanderfolgende doppelte Elemente in einem Bereich (Funktionsschablone & Algorithmus-Funktionsobjekt) | |
(C++20) |
|
| erstellt eine Kopie eines Bereichs von Elementen ohne aufeinanderfolgende Duplikate (Funktionsschablone & Algorithmus-Funktionsobjekt) | |
(C++20) |
|
(veraltet in C++17)(entfernt in C++20) |
erstellt ein benutzerdefiniertes std::binary_negate-Objekt (Funktionsschablone) |
(C++11) |
Sammlung eindeutiger Schlüssel, gehasht nach Schlüsseln (Klassenschablone) |
(C++11) |
Sammlung von Schlüssel-Wert-Paaren, gehasht nach Schlüsseln, Schlüssel sind eindeutig (Klassenschablone) |
(C++11) |
Sammlung von Schlüsseln, gehasht nach Schlüsseln (Klassenschablone) |
(C++11) |
Sammlung von Schlüssel-Wert-Paaren, gehasht nach Schlüsseln (Klassenschablone) |
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
|
LWG 2114
( P2167R3 ) |
C++98 |
Konvertierbarkeit von Rückgabetypen zu
bool
war zu schwach,
um die Erwartungen der Implementierungen widerzuspiegeln |
Anforderungen verstärkt |
| LWG 3031 | C++98 |
Anforderungen an
const
Werte waren unzureichend
|
Anforderungen verstärkt |