パラメーターを使用してコンストラクターで C++ プレースメント new を呼び出すことはできますか? カスタム アロケーターを実装しており、機能をデフォルト以外のコンストラクターから init 関数に移動する必要がないようにしたいと考えています。
class CFoo
{
public:
int foo;
CFoo()
{
foo = 0;
}
CFoo(int myFoo)
{
foo = myFoo;
}
};
CFoo* foo = new (pChunkOfMemory) CFoo(42);
タイプ CFoo のオブジェクトが、2 番目のコンストラクターを使用して pChunkOfMemory に構築されることを期待します。operator new を使用する場合、デフォルトのコンストラクターのみに固執していますか?
解決しました!私はしませんでし#include <new>
た。この後、placement ::new の呼び出しは、デフォルト以外のコンストラクターで正常に機能しました。