std:: partial_ordering
|
ヘッダーで定義
<compare>
|
||
|
class
partial_ordering
;
|
(C++20以降) | |
クラス型
std::partial_ordering
は、
三方比較
の結果型であり、以下の特性を持ちます:
-
6つの関係演算子すべてを許可します (
==,!=,<,<=,>,>=)。
- 代替可能性を意味しない: a が b と等価であっても、 f ( a ) が f ( b ) と等価であるとは限らない。ここで f は、引数の公開constメンバーを通じてアクセス可能な比較に関連する状態のみを読み取る関数を表す。言い換えれば、等価な値でも区別可能である場合がある。
- 比較不能な値を許容 : a < b 、 a == b 、および a > b がすべて false となる場合がある。
目次 |
定数
型
std::partial_ordering
は4つの有効な値を持ち、その型のconst staticデータメンバとして実装されています:
| 名前 | 定義 |
|
inline
constexpr
std
::
partial_ordering
less
[static]
|
小なり(順序が前)の関係を示す有効な値
(public static member constant) |
|
inline
constexpr
std
::
partial_ordering
equivalent
[static]
|
等価(順序が前でも後でもない)を示す有効な値
(public static member constant) |
|
inline
constexpr
std
::
partial_ordering
greater
[static]
|
大なり(順序が後)の関係を示す有効な値
(public static member constant) |
|
inline
constexpr
std
::
partial_ordering
unordered
[static]
|
比較不能な値との関係を示す有効な値
(public static member constant) |
変換
std::partial_ordering
は他の比較カテゴリ型へ暗黙的に変換することはできませんが、
std::strong_ordering
と
std::weak_ordering
の両方は
partial_ordering
へ暗黙的に変換可能です。
比較
比較演算子はこの型の値とリテラル 0 の間で定義されています。これにより、 a <=> b == 0 または a <=> b < 0 といった式がサポートされ、三方比較演算子の結果をブーリアンの関係に変換するために使用できます。詳細は std::is_eq 、 std::is_lt などを参照してください。
これらの関数は通常の
unqualified lookup
や
qualified lookup
では可視化されず、
std::partial_ordering
が引数の関連クラスである場合にのみ
argument-dependent lookup
によって発見されます。
partial_ordering
を整数リテラル
0
以外のものと比較しようとするプログラムの動作は未定義です。
|
operator==
operator<
operator>
operator<=
operator>=
operator<=>
|
ゼロまたは
partial_ordering
との比較を行う
(関数) |
operator==
|
friend
constexpr
bool
operator
==
(
partial_ordering v,
/*unspecified*/
u
)
noexcept
;
|
(1) | |
|
friend
constexpr
bool
operator == ( partial_ordering v, partial_ordering w ) noexcept = default ; |
(2) | |
パラメータ
| v, w | - |
std::partial_ordering
値をチェックする
|
| u | - | リテラルゼロ引数を受け入れる任意の型の未使用パラメータ |
戻り値
v
が
equivalent
の場合、
false
v
が
less
、
greater
、または
unordered
の場合
operator<
|
friend
constexpr
bool
operator
<
(
partial_ordering v,
/*unspecified*/
u
)
noexcept
;
|
(1) | |
|
friend
constexpr
bool
operator
<
(
/*unspecified*/
u, partial_ordering v
)
noexcept
;
|
(2) | |
パラメータ
| v | - |
チェックする
std::partial_ordering
値
|
| u | - | リテラルゼロ引数を受け入れる任意の型の未使用パラメータ |
戻り値
v
が
less
の場合は
true
、
v
が
greater
、
equivalent
または
unordered
の場合は
false
v
が
greater
の場合は
true
、
v
が
less
、
equivalent
または
unordered
の場合は
false
operator<=
|
friend
constexpr
bool
operator
<=
(
partial_ordering v,
/*unspecified*/
u
)
noexcept
;
|
(1) | |
|
friend
constexpr
bool
operator
<=
(
/*unspecified*/
u, partial_ordering v
)
noexcept
;
|
(2) | |
パラメータ
| v | - |
チェックする
std::partial_ordering
値
|
| u | - | リテラルゼロ引数を受け入れる任意の型の未使用パラメータ |
戻り値
v
が
less
または
equivalent
の場合、および
v
が
greater
または
unordered
の場合
false
v
が
greater
または
equivalent
の場合、および
v
が
less
または
unordered
の場合
false
operator>
|
friend
constexpr
bool
operator
>
(
partial_ordering v,
/*unspecified*/
u
)
noexcept
;
|
(1) | |
|
friend
constexpr
bool
operator
>
(
/*unspecified*/
u, partial_ordering v
)
noexcept
;
|
(2) | |
パラメータ
| v | - |
チェックする
std::partial_ordering
値
|
| u | - | リテラルゼロ引数を受け入れる任意の型の未使用パラメータ |
戻り値
v
が
greater
の場合、および
v
が
less
、
equivalent
、または
unordered
の場合
false
v
が
less
の場合、および
v
が
greater
、
equivalent
、または
unordered
の場合
false
operator>=
|
friend
constexpr
bool
operator
>=
(
partial_ordering v,
/*unspecified*/
u
)
noexcept
;
|
(1) | |
|
friend
constexpr
bool
operator
>=
(
/*unspecified*/
u, partial_ordering v
)
noexcept
;
|
(2) | |
パラメータ
| v | - |
チェックする
std::partial_ordering
値
|
| u | - | リテラルゼロ引数を受け入れる任意の型の未使用パラメータ |
戻り値
v
が
greater
または
equivalent
の場合、および
false
v
が
less
または
unordered
の場合
v
が
less
または
equivalent
の場合、および
false
v
が
greater
または
unordered
の場合
operator<=>
|
friend
constexpr
partial_ordering operator
<=>
(
partial_ordering v,
/*unspecified*/
u
)
noexcept
;
|
(1) | |
|
friend
constexpr
partial_ordering operator
<=>
(
/*unspecified*/
u, partial_ordering v
)
noexcept
;
|
(2) | |
パラメータ
| v | - |
チェックする
std::partial_ordering
値
|
| u | - | リテラルゼロ引数を受け入れる任意の型の未使用パラメータ |
戻り値
greater
もし
v
が
less
の場合、
less
もし
v
が
greater
の場合、それ以外は
v
。
注記
浮動小数点値間の
組み込み
operator<=>
は以下の順序付けを使用します:正のゼロと負のゼロは
equivalent
と比較されますが、区別可能であり、NaN値は他のあらゆる値と
unordered
として比較されます。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
(C++20)
|
すべての6つの演算子をサポートし、置換可能な3方向比較の結果型
(class) |
|
(C++20)
|
すべての6つの演算子をサポートするが、置換不可能な3方向比較の結果型
(class) |