C++ named requirements: LessThanComparable
Der Typ muss mit dem
<
Operator funktionieren und das Ergebnis sollte Standard-Semantik haben.
Inhaltsverzeichnis |
Anforderungen
Der Typ
T
erfüllt
LessThanComparable
, wenn für gegebene Ausdrücke
a
,
b
und
c
vom Typ
T
oder
const
T
(seit C++11)
der folgende Ausdruck gültig ist und die spezifizierten Effekte hat:
| Ausdruck | Typ | Effekte |
|---|---|---|
| a < b |
erfüllt
BooleanTestable
(bis C++20) |
Etabliert eine
strikte schwache Ordnungsrelation
mit folgenden Eigenschaften:
|
modelliert
boolean-testable
(seit C++20) |
Hinweise
Um diese Anforderung zu erfüllen, müssen Typen, die keine eingebauten Vergleichsoperatoren besitzen, einen benutzerdefinierten operator < bereitstellen.
Für Typen, die sowohl EqualityComparable als auch LessThanComparable sind, trifft die C++-Standardbibliothek eine Unterscheidung zwischen
- Gleichheit , was der Wert des Ausdrucks a == b ist, und
- Äquivalenz , was der Wert des Ausdrucks ! ( a < b ) && ! ( b < a ) ist.
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 zu bool war zu schwach, um die Erwartungen der Implementierungen widerzuspiegeln | Anforderungen verstärkt |
Siehe auch
|
eine
BinaryPredicate
die eine Ordnungsrelation definiert
(Named Requirement) |
|
|
(C++20)
|
spezifiziert dass eine
relation
eine strikte schwache Ordnung erzwingt
(Konzept) |