operator==, <=> (std::reference_wrapper)
From ja.cppreference.net
<
cpp
|
utility
|
functional
|
reference wrapper
|
friend
constexpr
bool
operator == ( reference_wrapper lhs, reference_wrapper rhs ) ; |
(1) | (C++26以降) |
|
friend
constexpr
bool
operator == ( reference_wrapper lhs, reference_wrapper < const T > rhs ) ; |
(2) | (C++26以降) |
|
friend
constexpr
bool
operator == ( reference_wrapper lhs, const T & ref ) ; |
(3) | (C++26以降) |
|
friend
constexpr
auto
operator <=> ( reference_wrapper lhs, reference_wrapper rhs ) ; |
(4) | (C++26以降) |
|
friend
constexpr
auto
operator <=> ( reference_wrapper lhs, reference_wrapper < const T > rhs ) ; |
(5) | (C++26以降) |
|
friend
constexpr
auto
operator <=> ( reference_wrapper lhs, const T & ref ) ; |
(6) | (C++26以降) |
reference_wrapperオブジェクトに対する比較操作を実行します。
1,2)
2つの
reference_wrapper
オブジェクトを比較します。オブジェクトは
lhs.
get
(
)
と
rhs.
get
(
)
が等しい場合にのみ等しいと比較されます。
1)
このオーバーロードは、式
lhs.
get
(
)
==
rhs.
get
(
)
が適切に形成され、その結果が
bool
に変換可能な場合にのみ、オーバーロード解決に参加します。
2)
このオーバーロードは、以下の全ての条件が満たされる場合にのみオーバーロード解決に参加します:
- std:: is_const_v < T > が false であること。
- 式 lhs. get ( ) == rhs. get ( ) が well-formed であり、その結果が bool に変換可能であること。
3)
reference_wrapperオブジェクトと参照を比較します。パラメータは、
lhs.
get
(
)
が
ref
と等しい場合にのみ等しくなります。
このオーバーロードは、式
lhs.
get
(
)
==
ref
が適切に形成され、その結果が
bool
に変換可能な場合にのみ、オーバーロード解決に参加します。
4)
このオーバーロードは、式
synth-three-way
(
lhs.
get
(
)
, rhs.
get
(
)
)
が well-formed である場合にのみ、オーバーロード解決に参加します。
5)
このオーバーロードは、以下の全ての条件が満たされる場合にのみオーバーロード解決に参加します:
- std:: is_const_v < T > が false であること。
- 式 synth-three-way ( lhs. get ( ) , rhs. get ( ) ) が well-formed であること。
このオーバーロードは、式
synth-three-way
(
lhs.
get
(
)
, ref
)
が適切に形成される場合にのみ、オーバーロード解決に参加します。
<、<=、>、>=、および!=演算子は、
それぞれ
operator
<=>
と
operator
==
から合成されます。
目次 |
パラメータ
| lhs, rhs | - |
reference_wrapper
オブジェクトの比較
|
| ref | - |
reference_wrapper
オブジェクトと比較する参照
|
戻り値
1,2)
lhs.
get
(
)
==
rhs.
get
(
)
.
3)
lhs.
get
(
)
==
ref
.
4,5)
synth-three-way
(
lhs.
get
(
)
, rhs.
get
(
)
)
.
6)
synth-three-way
(
lhs.
get
(
)
, ref
)
.
例外
比較がスローするタイミングと内容をスローします。
注記
operator <=> の戻り値型は、 戻り値文 から return によって推論され、 std:: reference_wrapper < T > を synth-three-way-result <T> が不適格な場合にインスタンス化時のハードエラーを回避します。
| 機能テスト マクロ | 値 | 標準 | 機能 |
|---|---|---|---|
__cpp_lib_reference_wrapper
|
202403L
|
(C++26) |
std::reference_wrapperの比較
|
例
|
このセクションは不完全です
理由: 例がありません |