我面临类似于从函数堆损坏返回的 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
}
知道为什么会这样吗?