参照がC++の特定のオブジェクトを指していることを確認する方法はありますか?参照がC++の特定のオブジェクトを指していることを確認してください
私はこのような何か意味:彼らは同じアドレスを持つことになります
int x(0);
int& xR = x;
if(xR == x)
{
//xR is refering to x
}
else
{
//xR is not refering to x
}
参照がC++の特定のオブジェクトを指していることを確認する方法はありますか?参照がC++の特定のオブジェクトを指していることを確認してください
私はこのような何か意味:彼らは同じアドレスを持つことになります
int x(0);
int& xR = x;
if(xR == x)
{
//xR is refering to x
}
else
{
//xR is not refering to x
}
template <class T> T* addressof (T& ref) noexcept
この関数もオーバーロード基準演算子(演算子&)の存在下で REFのアドレスを返します。
if(std::addressof(xR) == std::addressof(x))
{
yadayadayada
}
を。
if(&xR == &x)
{
//xR is referring to x
}
ああ!ありがとう、みんな! – trafalgarLaww
'operator&'はオーバーロードされている可能性があることに注意してください(型によって異なります)。そうであれば 'std :: addressof'を使うことができます。 – Corristo
'if(&xR ==&x)'? –