ヒープ上にオブジェクトを構築することは、C++ 言語では一見単純に見えるタスクです。コードが
T* object = new T();
func(object);
が呼び出された場合、メモリを最初に割り当ててから初期化し、最後にクラスのコンストラクターを呼び出す必要があることを理解しています。さらに、オブジェクトの仮想テーブルは、構築が完了するまで必ずしも使用できるとは限りません。
私の質問は次のとおりです。完全に構築されていないオブジェクトoperator new
で動作するように、オブジェクトの構築が完了する前に、割り当てられた/初期化されたメモリへのポインターを返すことができますか? func(...)
この質問に対する答えは、私が開発中のマルチスレッド ライブラリに影響を与えます。
前もって感謝します。