Namensräume
Varianten
Aktionen

std::partial_order

Von cppreference.com
< cpp‎ | utility
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
partial_order
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
Definiert in der Header-Datei <compare>
inline namespace /* nicht spezifiziert */ {

    inline constexpr /* nicht spezifiziert */ partial_order = /* nicht spezifiziert */;

}
(seit C++20)
Aufruf-Signatur
template< class T, class U >

    requires /* siehe unten */
constexpr std::partial_ordering

    partial_order( T&& t, U&& u ) noexcept(/* siehe unten */);

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

Seien t und u Ausdrücke und T und U bezeichnen decltype((t)) bzw. decltype(u)). Dann ist std::partial_order(t, u) ausdrucksäquivalent zu

Customization Point Objects

Der Name std::partial_order bezeichnet ein Customization Point Object, ein konstantes Function Object vom Typ eines Literal semiregular-Klasse. Zu Ausstellungszwecken wird die cv-unqualified Version seines Typs als __partial_order_fn bezeichnet.

Alle Instanzen von __partial_order_fn sind gleich. Die Effekte des Aufrufs verschiedener Instanzen vom Typ __partial_order_fn mit denselben Argumenten sind äquivalent, unabhängig davon, ob der Ausdruck, der die Instanz bezeichnet, ein lvalue oder rvalue ist, und ob er const-qualifiziert ist oder nicht (eine volatile-qualifizierte Instanz muss jedoch nicht aufrufbar sein). Daher kann std::partial_order frei kopiert und seine Kopien können austauschbar verwendet werden.

Gegeben sei eine Menge von Typen Args.... Wenn std::declval<Args>()... die Anforderungen für Argumente an std::partial_order wie oben erfüllen, dann modelliert __partial_order_fn

Andernfalls nimmt kein Funktionsaufrufoperator von __partial_order_fn an der Überladungsauflösung teil.

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

der Ergebnistyp des 3-Wege-Vergleichs, der alle 6 Operatoren unterstützt, nicht substituierbar ist und unvergleichbare Werte zulässt
(Klasse) [edit]
führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ std::strong_ordering
(Customization Point Objekt)[edit]
führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ std::weak_ordering
(Customization Point Objekt)[edit]
führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ std::partial_ordering, auch wenn operator<=> nicht verfügbar ist
(Customization Point Objekt)[edit]