如何使一元和课外超载?

How to overload unary & outside class?

本文关键字:超载 何使一      更新时间:2023-10-16

您可以在类中重载一元&运算符,如下所示:

struct X
{
   void* operator &()
   {
      return this;
   }
};

以便它返回一个地址。您将如何在类之外重载它:

struct X
{
};
void* operator &(const X& x)
{
    //how?
}

获取参数的地址将导致无限递归。

在 C++11 中,有template< class T > T* std::addressof(T& arg) .

标准::地址

您还可以从Boost Utility获得与C++03相同的功能

相关文章: