C++ benannte Anforderungen: LessThanComparable
Von cppreference.com
< cpp | benannte req
Der Typ muss mit dem < Operator funktionieren und das Ergebnis muss eine Standardsemantik haben.
Inhalt |
[bearbeiten] Anforderungen
Der Typ T erfüllt LessThanComparable, wenn für Ausdrücke a, b und c vom Typ T oder const T(seit C++11), der folgende Ausdruck gültig ist und seine spezifizierten Effekte hat
| Ausdruck | Typ | Effekte |
|---|---|---|
| a < b | erfüllt BooleanTestable (bis C++20) |
Eine strikt schwache Ordnungsrelation mit den folgenden Eigenschaften
|
modelliert boolean-testable(seit C++20) |
[bearbeiten] Anmerkungen
Um diese Anforderung zu erfüllen, müssen Typen, die keine integrierten Vergleichsoperatoren haben, einen benutzerdefinierten Operator operator< bereitstellen.
Für Typen, die sowohl EqualityComparable als auch LessThanComparable sind, unterscheidet die C++-Standardbibliothek zwischen
- Gleichheit, was der Wert des Ausdrucks a == b ist, und
- Äquivalenz, was der Wert des Ausdrucks !(a < b) && !(b < a) ist.
[bearbeiten] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 2114 (P2167R3) |
C++98 | Konvertierbarkeit in bool war zu schwach, um die Erwartungen der Implementierungen widerzuspiegeln | Anforderungen verstärkt |
[bearbeiten] Siehe auch
| Ein Binärer Prädikat, das eine Ordnungsrelation etabliert (benannte Anforderung) | |
| (C++20) |
gibt an, dass eine Relation eine strikt schwache Ordnung darstellt(Konzept) |