std:: weak_ordering
|
Definiert im Header
<compare>
|
||
|
class
weak_ordering
;
|
(seit C++20) | |
Der Klassentyp
std::weak_ordering
ist der Ergebnistyp eines
Drei-Wege-Vergleichs
, der:
-
Akzeptiert alle sechs relationalen Operatoren (
==,!=,<,<=,>,>=).
- Impliziert keine Austauschbarkeit: Wenn a äquivalent zu b ist, kann f ( a ) nicht äquivalent zu f ( b ) sein, wobei f eine Funktion bezeichnet, die nur vergleichsrelevante Zustände liest, die über die öffentlichen const-Member des Arguments zugänglich sind. Mit anderen Worten können äquivalente Werte unterscheidbar sein.
- Erlaubt keine unvergleichbaren Werte : Genau eine der Aussagen a < b , a == b , oder a > b muss true sein.
Inhaltsverzeichnis |
Konstanten
Der Typ
std::weak_ordering
hat drei gültige Werte, implementiert als konstante statische Datenelemente seines Typs:
| Name | Definition |
|
inline
constexpr
std
::
weak_ordering
less
[static]
|
ein gültiger Wert, der eine Kleiner-als-Beziehung (geordnet vor) anzeigt
(öffentliche statische Member-Konstante) |
|
inline
constexpr
std
::
weak_ordering
equivalent
[static]
|
ein gültiger Wert, der Äquivalenz anzeigt (weder geordnet vor noch geordnet nach)
(öffentliche statische Member-Konstante) |
|
inline
constexpr
std
::
weak_ordering
greater
[static]
|
ein gültiger Wert, der eine Größer-als-Beziehung (geordnet nach) anzeigt
(öffentliche statische Member-Konstante) |
Konvertierungen
std::weak_ordering
ist implizit konvertierbar zu
std::partial_ordering
, während
std::strong_ordering
implizit konvertierbar zu
weak_ordering
ist.
|
operator partial_ordering
|
implizite Konvertierung zu
std::partial_ordering
(öffentliche Elementfunktion) |
std::weak_ordering:: operator partial_ordering
|
constexpr
operator partial_ordering
(
)
const
noexcept
;
|
||
Rückgabewert
std::partial_ordering::less
falls
v
less
ist,
std::partial_ordering::greater
falls
v
greater
ist,
std::partial_ordering::equivalent
falls
v
equivalent
ist.
Vergleiche
Vergleichsoperatoren sind zwischen Werten dieses Typs und dem Literal 0 definiert. Dies unterstützt die Ausdrücke a <=> b == 0 oder a <=> b < 0 , die verwendet werden können, um das Ergebnis eines Drei-Wege-Vergleichsoperators in eine boolesche Relation umzuwandeln; siehe std::is_eq , std::is_lt , etc.
Diese Funktionen sind für gewöhnliches
unqualified
oder
qualified lookup
nicht sichtbar und können nur durch
argument-dependent lookup
gefunden werden, wenn
std::weak_ordering
eine assoziierte Klasse der Argumente ist.
Das Verhalten eines Programms, das versucht, einen
weak_ordering
mit etwas anderem als dem ganzzahligen Literal
0
zu vergleichen, ist undefiniert.
|
operator==
operator<
operator>
operator<=
operator>=
operator<=>
|
vergleicht mit Null oder einem
weak_ordering
(Funktion) |
operator==
|
friend
constexpr
bool
operator
==
(
weak_ordering v,
/*unspecified*/
u
)
noexcept
;
|
(1) | |
|
friend
constexpr
bool
operator
==
(
weak_ordering v, weak_ordering w
)
noexcept
=
default
;
|
(2) | |
Parameter
| v, w | - |
std::weak_ordering
Werte zu prüfen
|
| u | - | ein unbenutzter Parameter beliebigen Typs, der das Literal Null akzeptiert |
Rückgabewert
v
equivalent
ist,
false
wenn
v
less
oder
greater
ist
operator<
|
friend
constexpr
bool
operator
<
(
weak_ordering v,
/*unspecified*/
u
)
noexcept
;
|
(1) | |
|
friend
constexpr
bool
operator
<
(
/*unspecified*/
u, weak_ordering v
)
noexcept
;
|
(2) | |
Parameter
| v | - |
ein
std::weak_ordering
-Wert zur Überprüfung
|
| u | - | ein unbenutzter Parameter beliebigen Typs, der das Literal Null als Argument akzeptiert |
Rückgabewert
v
less
ist, und
false
wenn
v
greater
oder
equivalent
ist
v
greater
ist, und
false
wenn
v
less
oder
equivalent
ist
operator<=
|
friend
constexpr
bool
operator
<=
(
weak_ordering v,
/*unspecified*/
u
)
noexcept
;
|
(1) | |
|
friend
constexpr
bool
operator
<=
(
/*unspecified*/
u, weak_ordering v
)
noexcept
;
|
(2) | |
Parameter
| v | - |
ein
std::weak_ordering
-Wert zur Überprüfung
|
| u | - | ein unbenutzter Parameter beliebigen Typs, der das Literal Null als Argument akzeptiert |
Rückgabewert
v
less
oder
equivalent
ist, und
false
wenn
v
greater
ist
v
greater
oder
equivalent
ist, und
false
wenn
v
less
ist
operator>
|
friend
constexpr
bool
operator
>
(
weak_ordering v,
/*unspecified*/
u
)
noexcept
;
|
(1) | |
|
friend
constexpr
bool
operator
>
(
/*unspecified*/
u, weak_ordering v
)
noexcept
;
|
(2) | |
Parameter
| v | - |
ein
std::weak_ordering
-Wert zur Überprüfung
|
| u | - | ein unbenutzter Parameter beliebigen Typs, der das Literal Null akzeptiert |
Rückgabewert
v
greater
ist, und
false
falls
v
less
oder
equivalent
ist
v
less
ist, und
false
falls
v
greater
oder
equivalent
ist
operator>=
|
friend
constexpr
bool
operator
>=
(
weak_ordering v,
/*unspecified*/
u
)
noexcept
;
|
(1) | |
|
friend
constexpr
bool
operator
>=
(
/*unspecified*/
u, weak_ordering v
)
noexcept
;
|
(2) | |
Parameter
| v | - |
ein
std::weak_ordering
-Wert zur Überprüfung
|
| u | - | ein unbenutzter Parameter beliebigen Typs, der das Literal Null akzeptiert |
Rückgabewert
v
greater
oder
equivalent
ist, und
false
wenn
v
less
ist
v
less
oder
equivalent
ist, und
false
wenn
v
greater
ist
operator<=>
|
friend
constexpr
weak_ordering operator
<=>
(
weak_ordering v,
/*unspecified*/
u
)
noexcept
;
|
(1) | |
|
friend
constexpr
weak_ordering operator
<=>
(
/*unspecified*/
u, weak_ordering v
)
noexcept
;
|
(2) | |
Parameter
| v | - |
ein
std::weak_ordering
-Wert zur Überprüfung
|
| u | - | ein unbenutzter Parameter beliebigen Typs, der das Literal Null akzeptiert |
Rückgabewert
greater
falls
v
less
ist,
less
falls
v
greater
ist, andernfalls
v
.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
(C++20)
|
der Ergebnistyp des 3-Wege-Vergleichs, der alle 6 Operatoren unterstützt und substituierbar ist
(class) |
|
(C++20)
|
der Ergebnistyp des 3-Wege-Vergleichs, der alle 6 Operatoren unterstützt, nicht substituierbar ist und unvergleichbare Werte erlaubt
(class) |