これをC++標準コンパイラで実行できるようにしたいと思います。
void DoSomething(Object* object) { }
DoSomething(&Object())
デフォルトのアドレス演算子を使用すると、構築されたオブジェクトをレジスタに保存してから、DoSomething()で上書きします...すべてのオブジェクトに対して1行でこれを行うと非常に便利です(オーバーライドできない基本タイプを除く)。彼ら)。
これが私が持っているものです:
class Object
{
public:
Object* operator&(Object object) { return &object; }
};
これは明らかに、オーバーライドされたものではなく、基本的な&演算子が必要であることを指定できずに繰り返されるループになります。DoSomething(&Object())を呼び出しても呼び出されません。これは可能ですか?複雑なタイプの初期化がはるかに簡単になるので、それは一種の重要です。