placement-newじゃないですが
void* buf = (void*)new char[sizeof(HOGE)];
Hoge* hoge = (HOGE*)buf;
hoge->hoge(); // コンストラクタ呼び出し
hoge->~hoge(); // デストラクタ呼び出し

これって大丈夫ですか?
delete hoge とかやるとデストラクタ呼び出してくれるんでしょうか。