如何检查引用是否指向C ++中的特定对象?
我的意思是这样的:
int x(0);
int& xR = x;
if(xR == x)
{
//xR is refering to x
}
else
{
//xR is not refering to x
}
答案 0 :(得分:6)
他们将拥有相同的地址。
if( &xR == &x )
{
//xR is referring to x
}
答案 1 :(得分:2)
template <class T> T* addressof (T& ref) noexcept
此函数返回地址 即使在存在重载的参考运算符(运算符&amp;)的情况下也参考。
if(std::addressof(xR) == std::addressof(x))
{
yadayadayada
}