C++ named requirements: Predicate
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Die Predicate Anforderungen beschreiben ein Aufrufbares, das einen BooleanTestable Wert zurückgibt.
Prädikat wird typischerweise mit Algorithmen verwendet, die Eingabedaten (einzelne Objekte/Container) und ein Prädikat entgegennehmen, welches dann auf die Eingabedaten angewendet wird, um über den weiteren Ablauf zu entscheiden. Einige Beispiele für die Verwendung von Prädikaten in der C++-Standardbibliothek sind:
- std::all_of , std::any_of , std::none_of Nehmen ein Array von Elementen und ein Prädikat als Eingabe. Rufen das Prädikat für einzelne Eingabeelemente auf und geben true zurück, wenn für alle/jedes/keines der Elemente das Prädikat true zurückgibt.
- std::find_if Nimmt eine Folge von Elementen und ein Prädikat entgegen. Gibt das erste Element in der Folge zurück, für das das Prädikat einen Wert gleich true liefert.
Die oben gegebene Beschreibung der Algorithmus-Einrichtungen ist grob und soll Predicate in einfachen Begriffen erklären. Für detaillierte Informationen konsultieren Sie bitte die einzelnen Seiten.
Mit anderen Worten, wenn ein Algorithmus ein
Predicate
pred
und einen Iterator
first
verwendet, sollte er in der Lage sein, das Objekt des Typs, auf den der Iterator
first
zeigt, mit dem gegebenen Prädikat zu testen, und zwar über ein Konstrukt wie
if
(
pred
(
*
first
)
)
{
/*...*/
}
.
Das Funktionsobjekt
pred
darf keine nicht-konstante Funktion über den dereferenzierten Iterator anwenden und muss ein
const
-Argument akzeptieren, mit demselben Verhalten unabhängig davon, ob das Argument
const
oder nicht-
const
ist. Dieses Funktionsobjekt kann ein Zeiger auf eine Funktion oder ein Objekt eines Typs mit einem geeigneten Funktionsaufrufoperator sein.
Anforderungen
|
Dieser Abschnitt ist unvollständig
Grund: Bessere Beschreibung der tatsächlichen Anforderungen erforderlich |
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 3031 | C++98 |
Anforderungen an
const
Werte waren unzureichend
|
Anforderungen verstärkt |
Siehe auch
|
(C++20)
|
spezifiziert, dass ein aufrufbarer Typ ein boolesches Prädikat ist
(Konzept) |