class partial_ordering;
(since C++20)The class type std::partial_ordering
is the result type of a three-way comparison that:
==
, !=
, <
, <=
, >
, >=
).The type std::partial_ordering
has four valid values, implemented as const static data members of its type:
inline constexpr std::partial_ordering less
[static]
a valid value indicating less-than (ordered before) relationshipinline constexpr std::partial_ordering equivalent
[static]
a valid value indicating equivalence (neither ordered before nor ordered after)inline constexpr std::partial_ordering greater
[static]
a valid value indicating greater-than (ordered after) relationshipinline constexpr std::partial_ordering unordered
[static]
a valid value indicating relationship with an incomparable valuestd::partial_ordering
cannot be implicitly converted to other comparison category types, while both std::strong_ordering and std::weak_ordering are implicitly-convertible to partial_ordering
.
Comparison operators are defined between values of this type and literal â0â. This supports the expressions a <=> b == 0 or a <=> b < 0 that can be used to convert the result of a three-way comparison operator to a boolean relationship; see std::is_eq, std::is_lt, etc.
These functions are not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when std::partial_ordering
is an associated class of the arguments.
The behavior of a program that attempts to compare a partial_ordering
with anything other than the integer literal â0â is undefined.
operator==operator<operator>operator<=operator>=operator<=>
compares with zero or apartial_ordering
friend constexpr bool operator==( partial_ordering v, /*unspecified*/ u ) noexcept;
(1)friend constexpr bool
operator==( partial_ordering v, partial_ordering w ) noexcept = default;
std::partial_ordering
values to check u - an unused parameter of any type that accepts literal zero argument Return value
1) true if v
is equivalent
, false if v
is less
, greater
, or unordered
2) true if both parameters hold the same value, false otherwise
operator<friend constexpr bool operator<( partial_ordering v, /*unspecified*/ u ) noexcept;
(1)friend constexpr bool operator<( /*unspecified*/ u, partial_ordering v ) noexcept;
(2) Parameters v - astd::partial_ordering
value to check u - an unused parameter of any type that accepts literal zero argument Return value
1) true if v
is less
, and false if v
is greater
, equivalent
, or unordered
2) true if v
is greater
, and false if v
is less
, equivalent
, or unordered
friend constexpr bool operator<=( partial_ordering v, /*unspecified*/ u ) noexcept;
(1)friend constexpr bool operator<=( /*unspecified*/ u, partial_ordering v ) noexcept;
(2) Parameters v - astd::partial_ordering
value to check u - an unused parameter of any type that accepts literal zero argument Return value
1) true if v
is less
or equivalent
, and false if v
is greater
or unordered
2) true if v
is greater
or equivalent
, and false if v
is less
or unordered
friend constexpr bool operator>( partial_ordering v, /*unspecified*/ u ) noexcept;
(1)friend constexpr bool operator>( /*unspecified*/ u, partial_ordering v ) noexcept;
(2) Parameters v - astd::partial_ordering
value to check u - an unused parameter of any type that accepts literal zero argument Return value
1) true if v
is greater
, and false if v
is less
, equivalent
, or unordered
2) true if v
is less
, and false if v
is greater
, equivalent
, or unordered
friend constexpr bool operator>=( partial_ordering v, /*unspecified*/ u ) noexcept;
(1)friend constexpr bool operator>=( /*unspecified*/ u, partial_ordering v ) noexcept;
(2) Parameters v - astd::partial_ordering
value to check u - an unused parameter of any type that accepts literal zero argument Return value
1) true if v
is greater
or equivalent
, and false if v
is less
or unordered
2) true if v
is less
or equivalent
, and false if v
is greater
or unordered
friend constexpr partial_ordering operator<=>( partial_ordering v, /*unspecified*/ u ) noexcept;
(1)friend constexpr partial_ordering operator<=>( /*unspecified*/ u, partial_ordering v ) noexcept;
(2) Parameters v - astd::partial_ordering
value to check u - an unused parameter of any type that accepts literal zero argument Return value
1) v.
2) greater
if v
is less
, less
if v
is greater
, otherwise v
.
The built-in operator<=>
between floating-point values uses this ordering: the positive zero and the negative zero compare equivalent
, but can be distinguished, and NaN values compare unordered
with any other value.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4