std::partial_order
Von de.cppreference.net
| Definiert in Header <compare>
|
||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */ partial_order = /* unspecified */;
}
|
(seit C++20) | |
| Aufrufsignatur |
||
template< class T, class U >
requires /* see below */
constexpr std::partial_ordering
partial_order( T&& t, U&& u ) noexcept(/* see below */);
|
||
Vergleicht zwei Werte mittels 3-Wege-Vergleich und erzeugt ein Ergebnis vom Typ std::partial_ordering.
Seien t und u Ausdrücke und seien T und U Bezeichner für decltype((t)) bzw. decltype((u)). std::partial_order(t, u) ist ausdrucksäquivalent zu:
- Falls
std::is_same_v<std::decay_t<T>, std::decay_t<U>>trueist:std::partial_ordering(partial_order(t, u)), falls es ein wohldefinierter Ausdruck ist, bei dem die Überladungsauflösung in einem Kontext durchgeführt wird, der keine Deklaration vonstd::partial_orderenthält;- andernfalls
std::partial_ordering(std::compare_three_way()(t, u)), falls es wohldefiniert ist; - andernfalls
std::partial_ordering(std::weak_order(t, u)), falls es wohldefiniert ist.
- In allen anderen Fällen ist der Ausdruck nicht wohldefiniert, was zu Substitutionsfehler führen kann, wenn er im unmittelbaren Kontext einer Template-Instantiierung auftritt.
Customization Point Objects
Der Name
std::partial_order
bezeichnet ein
Customization Point Object
, welches ein konstantes
Funktionsobjekt
eines
literalen
semiregular
Klassentyps ist. Weitere Details finden Sie unter
CustomizationPointObject
.
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, nicht substituierbar ist und unvergleichbare Werte erlaubt
(Klasse) |
|
(C++20)
|
Führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ
std::strong_ordering
(Anpassungspunktobjekt) |
|
(C++20)
|
Führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ
std::weak_ordering
(Anpassungspunktobjekt) |
|
(C++20)
|
Führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ
std::partial_ordering
, selbst wenn
operator
<=>
nicht verfügbar ist
(Anpassungspunktobjekt) |