std::ranges::equal_to
Von cppreference.com
< cpp | utility | functional
| Definiert in der Header-Datei <functional> |
||
| struct equal_to; |
(seit C++20) | |
Funktionsobjekt für Vergleiche. Die Parametertypen des Funktionsaufrufoperators (aber nicht der Rückgabetyp) werden aus den Argumenten abgeleitet.
Inhalt |
[edit] Verschachtelte Typen
| Verschachtelter Typ | Definition |
is_transparent
|
nicht spezifiziert |
[edit] Memberfunktionen
| operator() |
prüft, ob die Argumente gleich sind (öffentliche Memberfunktion) |
std::ranges::equal_to::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 von eingebauten operator== führt, der Zeiger vergleicht, gegeben den zusammengesetzten Zeigertyp von t und u als
P
- Für die beiden konvertierten Zeiger (vom Typ
P), wenn ein Zeiger dem anderen in der implementierungsdefinierten strikten totalen Ordnung über Zeigern vorausgeht, wird false zurückgegeben, andernfalls wird true zurückgegeben. - Wenn die Konvertierungssequenz von
TnachPoder die Konvertierungssequenz vonUnachPnicht equality-preserving ist, ist das Verhalten undefiniert.
- Für die beiden konvertierten Zeiger (vom Typ
- Andernfalls
- Gibt das Ergebnis von expr zurück.
- Wenn std::equality_comparable_with<T, U> nicht modelliert wird, ist das Verhalten undefiniert.
Diese Überladung nimmt nur an der Auflösung von Überladungen teil, wenn std::equality_comparable_with<T, U> erfüllt ist.
[edit] Hinweise
Im Vergleich zu std::equal_to erfordert std::ranges::equal_to zusätzlich, dass != gültig ist, und dass beide Argumenttypen (homogen) mit sich selbst vergleichbar sein müssen (über die equality_comparable_with-Beschränkung).
[edit] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[edit] 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 3530 | C++20 | syntaktische Prüfungen wurden beim Vergleichen von Zeigern gelockert | nur semantische Anforderungen sind gelockert |
[edit] Siehe auch
| Funktions-Objekt, das x == y implementiert (Klassen-Template) |