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 ein BinaryPredicate , das kein Compare -Typ ist.
|
Entfernt aufeinanderfolgende doppelte Elemente
(Öffentliche Elementfunktion von
std::forward_list<T,Allocator>
)
|
|
|
Entfernt aufeinanderfolgende doppelte Elemente
(Öffentliche Elementfunktion von
std::list<T,Allocator>
)
|
|
|
Findet die letzte Sequenz von Elementen in einem bestimmten Bereich
(Funktionstemplate) |
|
|
Sucht nach einem beliebigen Element aus einer Menge von Elementen
(Funktionstemplate) |
|
|
Findet die ersten zwei benachbarten Elemente, die gleich sind (oder ein gegebenes Prädikat erfüllen)
(Funktionstemplate) |
|
|
Findet die erste Position, an der zwei Bereiche sich unterscheiden
(Funktionstemplate) |
|
|
Bestimmt, ob zwei Mengen von Elementen identisch sind
(Funktionstemplate) |
|
|
(C++11)
|
Bestimmt, ob eine Sequenz eine Permutation einer anderen Sequenz ist
(Funktionstemplate) |
|
Sucht nach dem ersten Vorkommen eines Bereichs von Elementen
(Funktionstemplate) |
|
|
Sucht nach dem ersten Vorkommen einer Anzahl aufeinanderfolgender Kopien eines Elements in einem Bereich
(Funktionstemplate) |
|
|
Entfernt aufeinanderfolgende doppelte Elemente in einem Bereich
(Funktionstemplate) |
|
|
Erstellt eine Kopie eines Bereichs von Elementen, die keine aufeinanderfolgenden Duplikate enthält
(Funktionstemplate) |
|
|
(veraltet in C++17)
(entfernt in C++20)
|
Konstruiert benutzerdefiniertes
std::binary_negate
Objekt
(Funktionstemplate) |
|
(C++11)
|
Sammlung eindeutiger Schlüssel, gehasht nach Schlüsseln
(Klassentemplate) |
|
(C++11)
|
Sammlung von Schlüssel-Wert-Paaren, gehasht nach Schlüsseln, Schlüssel sind eindeutig
(Klassentemplate) |
|
(C++11)
|
Sammlung von Schlüsseln, gehasht nach Schlüsseln
(Klassentemplate) |
|
(C++11)
|
Sammlung von Schlüssel-Wert-Paaren, gehasht nach Schlüsseln
(Klassentemplate) |
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 |