std:: partial_order
|
Defined in header
<compare>
|
||
|
inline
namespace
/* unspecified */
{
inline
constexpr
/* unspecified */
partial_order
=
/* unspecified */
;
|
(since C++20) | |
|
Call signature
|
||
|
template
<
class
T,
class
U
>
requires
/* see below */
|
||
Compares two values using 3-way comparison and produces a result of type
std::partial_ordering
.
Let
t
and
u
be expressions and
T
and
U
denote
decltype
(
(
t
)
)
and
decltype
(
(
u
)
)
respectively,
std
::
partial_order
(
t, u
)
is
expression-equivalent
to:
-
If
std::
is_same_v
<
std::
decay_t
<
T
>
,
std::
decay_t
<
U
>>
is
true
:
-
std::
partial_ordering
(
partial_order
(
t, u
)
)
, if it is a well-formed expression with overload resolution performed in a context that does not include a declaration of
std::partial_order, - otherwise, std:: partial_ordering ( std:: compare_three_way ( ) ( t, u ) ) , if it is well-formed,
- otherwise, std:: partial_ordering ( std:: weak_order ( t, u ) ) , if it is well-formed.
-
std::
partial_ordering
(
partial_order
(
t, u
)
)
, if it is a well-formed expression with overload resolution performed in a context that does not include a declaration of
- In all other cases, the expression is ill-formed, which can result in substitution failure when it appears in the immediate context of a template instantiation.
Customization point objects
The name
std::partial_order
denotes a
customization point object
, which is a const
function object
of a
literal
semiregular
class type. See
CustomizationPointObject
for details.
Example
|
This section is incomplete
Reason: no example |
See also
|
(C++20)
|
the result type of 3-way comparison that supports all 6 operators, is not substitutable, and allows incomparable values
(class) |
|
(C++20)
|
performs 3-way comparison and produces a result of type
std::strong_ordering
(customization point object) |
|
(C++20)
|
performs 3-way comparison and produces a result of type
std::weak_ordering
(customization point object) |
|
(C++20)
|
performs 3-way comparison and produces a result of type
std::partial_ordering
, even if
operator
<=>
is unavailable
(customization point object) |