您可以将类中的一元&
运算符重载为:
struct X
{
void* operator &()
{
return this;
}
};
以便它返回一个地址。你会如何在课外重载:
struct X
{
};
void* operator &(const X& x)
{
//how?
}
获取参数的地址将导致无限递归。
答案 0 :(得分:5)
在C ++ 11中,有template< class T > T* std::addressof(T& arg)
。
您也可以从Boost Utility
获得C ++ 03的相同功能