std:: partial_order
|
Definiert im Header
<compare>
|
||
|
inline
namespace
/* unspecified */
{
inline
constexpr
/* unspecified */
partial_order
=
/* unspecified */
;
|
(seit C++20) | |
|
Aufrufsignatur
|
||
|
template
<
class
T,
class
U
>
requires
/* 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 bezeichnen
T
und
U
jeweils
decltype
(
(
t
)
)
und
decltype
(
(
u
)
)
,
dann ist
std
::
partial_order
(
t, u
)
ausdrucksäquivalent
zu:
-
Wenn
std::
is_same_v
<
std::
decay_t
<
T
>
,
std::
decay_t
<
U
>>
trueist:-
std::
partial_ordering
(
partial_order
(
t, u
)
)
, falls es sich um einen wohldefinierten Ausdruck handelt, wobei die Überladungsauflösung in einem Kontext durchgeführt wird, der keine Deklaration von
std::partial_orderenthält, - andernfalls std:: partial_ordering ( std:: compare_three_way ( ) ( t, u ) ) , falls dies wohldefiniert ist,
- andernfalls std:: partial_ordering ( std:: weak_order ( t, u ) ) , falls dies wohldefiniert ist.
-
std::
partial_ordering
(
partial_order
(
t, u
)
)
, falls es sich um einen wohldefinierten Ausdruck handelt, wobei die Überladungsauflösung in einem Kontext durchgeführt wird, der keine Deklaration von
- In allen anderen Fällen ist der Ausdruck fehlerhaft, was zu Substitutionsfehlern führen kann, wenn er im unmittelbaren Kontext einer Template-Instanziierung 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) |