Namespaces
Variants

std:: weak_order

From cppreference.net
Utilities library
Definiert im Header <compare>
inline namespace /* unspecified */ {

inline constexpr /* unspecified */ weak_order = /* unspecified */ ;

}
(seit C++20)
Aufrufsignatur
template < class T, class U >

requires /* see below */

constexpr std:: weak_ordering weak_order ( T && t, U && u ) noexcept ( /* see below */ ) ;

Vergleicht zwei Werte mittels 3-Wege-Vergleich und erzeugt ein Ergebnis vom Typ std::weak_ordering .

Seien t und u Ausdrücke und bezeichnen T und U jeweils decltype ( ( t ) ) und decltype ( ( u ) ) , std :: weak_order ( t, u ) ist ausdrucksäquivalent zu:

Inhaltsverzeichnis

Customization Point Objects

Der Name std::weak_order bezeichnet ein Customization Point Object , welches ein konstantes Funktionsobjekt eines Literal semiregular Klassentyps ist. Weitere Details finden Sie unter CustomizationPointObject .

Strikte schwache Ordnung von IEEE-Gleitkommatypen

Seien x und y Werte desselben IEEE-Gleitkommatyps, und weak_order_less ( x, y ) sei das boolesche Ergebnis, das angibt, ob x in der strengen schwachen Ordnung, die durch den C++-Standard definiert ist, vor y kommt.

  • Wenn weder x noch y NaN ist, dann ist weak_order_less ( x, y ) == true genau dann, wenn x < y , d.h. alle Darstellungen gleicher Fließkommawerte sind äquivalent;
  • Wenn x negatives NaN ist und y nicht negatives NaN ist, dann ist weak_order_less ( x, y ) == true ;
  • Wenn x nicht positives NaN ist und y positives NaN ist, dann ist weak_order_less ( x, y ) == true ;
  • Wenn sowohl x als auch y NaNs mit demselben Vorzeichen sind, dann ist ( weak_order_less ( x, y ) || weak_order_less ( y, x ) ) == false , d.h. alle NaNs mit demselben Vorzeichen sind äquivalent.

Beispiel

Siehe auch

der Ergebnistyp des 3-Wege-Vergleichs, der alle 6 Operatoren unterstützt und nicht substituierbar ist
(Klasse)
führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ std::strong_ordering
(Anpassungspunktobjekt)
führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ std::partial_ordering
(Anpassungspunktobjekt)
führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ std::weak_ordering , selbst wenn operator <=> nicht verfügbar ist
(Anpassungspunktobjekt)