我希望能够在 C++ 标准编译器中做到这一点:
void DoSomething(Object* object) { }
DoSomething(&Object())
使用默认地址运算符,它会将构造的对象保存到寄存器中,然后在 DoSomething() 中覆盖它......在一行中为所有对象执行此操作非常好(除了不能覆盖的基本类型他们)。
所以这就是我所拥有的:
class Object
{
public:
Object* operator&(Object object) { return &object; }
};
这显然只是一个重复循环,无法指定我想要基本的 & 运算符,而不是覆盖的运算符。当我调用 DoSomething(&Object()) 时也不会调用它。这可能吗?它会使初始化复杂类型变得更容易,所以它很重要。