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