std::weak_ordering
| Definiert in Header <compare>
|
||
class weak_ordering;
|
(seit C++20) | |
Der Klassentyp std::weak_ordering ist der Ergebnistyp eines Dreiseitigen Vergleichs, der:
- Alle sechs relationalen Operatoren zulässt (
==,!=,<,<=,>,>=).
- Keine Substituierbarkeit impliziert: Wenn
aäquivalent zubist, mussf(a)nicht äquivalent zuf(b)sein, wobeifeine Funktion bezeichnet, die nur den vergleichsrelevanten Zustand liest, der über die öffentlichen const-Member des Arguments zugänglich ist. Mit anderen Worten: Äquivalente Werte können unterscheidbar sein. - Keine nicht vergleichbaren Werte zulässt: Genau einer der Werte
a < b,a == bodera > bmusstruesein.
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) |