operator==, <=>(std::reference_wrapper)
Von de.cppreference.net
friend constexpr bool
operator==( reference_wrapper lhs, reference_wrapper rhs );
|
(1) | (seit C++26) |
friend constexpr bool
operator==( reference_wrapper lhs, reference_wrapper<const T> rhs );
|
(2) | (seit C++26) |
friend constexpr bool
operator==( reference_wrapper lhs, const T& ref );
|
(3) | (seit C++26) |
friend constexpr auto
operator<=>( reference_wrapper lhs, reference_wrapper rhs );
|
(4) | (seit C++26) |
friend constexpr auto
operator<=>( reference_wrapper lhs, reference_wrapper<const T> rhs );
|
(5) | (seit C++26) |
friend constexpr auto
operator<=>( reference_wrapper lhs, const T& ref );
|
(6) | (seit C++26) |
Führt Vergleichsoperationen auf reference_wrapper-Objekten durch.
1,2) Vergleicht zwei
reference_wrapper-Objekte. Die Objekte vergleichen genau dann gleich, wenn lhs.get() und rhs.get() gleich sind.1) Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn der Ausdruck
lhs.get() == rhs.get() wohlgeformt ist und sein Ergebnis in bool konvertierbar ist.2) Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn alle folgenden Bedingungen erfüllt sind:
std::is_const_v<T>istfalse.- Der Ausdruck
lhs.get() == rhs.get()ist wohlgeformt und sein Ergebnis ist inboolkonvertierbar.
3) Vergleicht ein
reference_wrapper-Objekt mit einer Referenz. Die Parameter vergleichen genau dann gleich, wenn lhs.get() gleich ref ist. Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn der Ausdruck
lhs.get() == ref wohlgeformt ist und sein Ergebnis in bool konvertierbar ist.4) Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn der Ausdruck synth-three-way
(lhs.get(), rhs.get()) wohlgeformt ist.5) Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn alle folgenden Bedingungen erfüllt sind:
std::is_const_v<T>istfalse.- Der Ausdruck synth-three-way
(lhs.get(), rhs.get())ist wohlgeformt.
Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn der Ausdruck synth-three-way
(lhs.get(), ref) wohlgeformt ist.Die Operatoren <, <=, >, >= und != werden aus synthetisiert von operator<=> bzw. operator==.
Parameter
| lhs, rhs | - |
reference_wrapper
Objekt zum Vergleichen
|
| ref | - |
Referenz zum Vergleichen mit dem
reference_wrapper
Objekt
|
Rückgabewert
1,2)
lhs.
get
(
)
==
rhs.
get
(
)
.
3)
lhs.
get
(
)
==
ref
.
4,5)
synth-three-way
(
lhs.
get
(
)
, rhs.
get
(
)
)
.
6)
synth-three-way
(
lhs.
get
(
)
, ref
)
.
Ausnahmen
Wirft, wann und was der Vergleich wirft.
Hinweise
Die Rückgabetypen von operator <=> werden von return -Anweisungen abgeleitet , um Fehler bei der Instanziierung eines std:: reference_wrapper < T > zu vermeiden, wenn synth-three-way-result <T> fehlerhaft ist.
| Feature-Test Makro | Wert | Std | Funktion |
|---|---|---|---|
__cpp_lib_reference_wrapper
|
202403L
|
(C++26) |
Vergleiche für
std::reference_wrapper
|
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |