保持している参照によって2 つの を比較するにはどうすればよいstd::reference_wrapper
ですか? std::reference_wrapper
2 つの s の参照が等しいかどうかを確認したい。
編集:混乱して申し訳ありません。参照対象のアドレスを取得して比較する方法を意味していました。
保持している参照によって2 つの を比較するにはどうすればよいstd::reference_wrapper
ですか? std::reference_wrapper
2 つの s の参照が等しいかどうかを確認したい。
編集:混乱して申し訳ありません。参照対象のアドレスを取得して比較する方法を意味していました。
メンバー関数は、参照された要素へのget()
参照を返します。その後、指示対象のアドレスを直接取得できます。
std::addressof(r1.get()) == std::addressof(r2.get())
メンバー関数std::reference_wrapper::get
は、保持している参照を返します。次に、2 つの参照オブジェクトを次のように比較できます。
const auto& a = ref_a.get();
const auto& b = ref_b.get();
if (a == b) {
// …
}
もちろん、上記はoperator==
2 つのオブジェクトを呼び出します (型がクラス型の場合)。