関数ヒープの破損から返された void ポインターに似た問題に直面しています
類似点は、unique_ptr が使用されているスコープを離れるときに「ヒープの破損」メッセージが表示されることです。
ここにコード:
void CMyClass::SomeMethod ()
{
std::unique_ptr<IMyInterface> spMyInterface;
spMyInterface.reset(new CMyInterfaceObject()); // CMyInterfaceObject is derived from IMyInterface
any_list.push_back(spMyInterface.get()); // any_list: std::list<IMyInterface*>
any_list.clear(); // only clears the pointers, but doesn't delete it
// when leaving the scope, unique_ptr deletes the allocated objects... -> heap corruption
}
なぜこれが起こるのか分かりますか?