std::ranges:: less
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definiert im Header
<functional>
|
||
|
struct
less
;
|
(seit C++20) | |
Funktionsobjekt zum Durchführen von Vergleichen. Leitet die Parametertypen des Funktionsaufrufoperators aus den Argumenten ab (aber nicht den Rückgabetyp).
Inhaltsverzeichnis |
Verschachtelte Typen
| Geschachtelter Typ | Definition |
is_transparent
|
unspecified |
Memberfunktionen
|
operator()
|
prüft, ob das erste Argument
kleiner
als das zweite ist
(öffentliche Elementfunktion) |
std::ranges::less:: operator()
|
template
<
class
T,
class
U
>
constexpr bool operator ( ) ( T && t, U && u ) const ; |
||
Gegeben den Ausdruck std:: forward < T > ( t ) < std:: forward < U > ( u ) als expr :
-
Wenn
expr
zu einem Aufruf des
eingebauten
operator
<
für Zeigervergleiche führt, mit dem
zusammengesetzten Zeigertyp
von
t
und
u
als
P:
-
-
Wenn der konvertierte
t
(beide vom Typ
P) in der implementierungsdefinierten strengen Totalordnung über Zeiger vor dem konvertierten u steht, wird true zurückgegeben, andernfalls false . -
Wenn die Konvertierungssequenz von
TzuPoder die Konvertierungssequenz vonUzuPnicht gleichheitserhaltend ist, ist das Verhalten undefiniert.
-
Wenn der konvertierte
t
(beide vom Typ
- Andernfalls:
-
- Gibt das Ergebnis von expr zurück.
- Wenn std:: totally_ordered_with < T, U > nicht modelliert wird, ist das Verhalten undefiniert.
Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn std:: totally_ordered_with < T, U > erfüllt ist.
Wenn es einen Ausdruck
expr1
vom Typ
T
und einen Ausdruck
expr2
vom Typ
U
gibt, sodass die Vergleichsergebnisse von
expr1
und
expr2
gegen die
strenge Totalordnung
verstoßen (Regeln sind unten definiert), ist das Verhalten undefiniert.
Die Vergleichsergebnisse von expr1 und expr2 folgen einer strengen Totalordnung nur, wenn genau einer der folgenden Ausdrücke true ist:
- std :: ranges:: less { } ( expr1, expr2 )
- std :: ranges:: less { } ( expr2, expr1 )
- std :: ranges:: equal_to { } ( expr1, expr2 )
Hinweise
Im Gegensatz zu
std::less
erfordert
std::ranges::less
alle sechs Vergleichsoperatoren
<
,
<=
,
>
,
>=
,
==
und
!=
gültig zu sein (über die
totally_ordered_with
-Einschränkung).
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
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 3530 | C++20 | syntaktische Prüfungen wurden beim Vergleich von Zeigern gelockert | nur semantische Anforderungen werden gelockert |
Siehe auch
|
Funktionsobjekt, das
x
<
y
(Klassentemplate) |