【发布时间】:2012-04-29 03:24:12
【问题描述】:
我正在用 C++ 在 Windows COM 中编写一个程序,并且我正在使用 CComPtr 进行智能指针。
我无法找到答案的问题是 - 我可以在 std::map 中使用 CComPtr。
我有以下代码片段(简化):
std::map<int, CComPtr<IErrorInfo> > ErrorMap;
我希望维护ints 和IErrorInfo 错误信息之间的映射。
但是我不确定我是否可以执行以下操作:
CComPtr<IErrorInfo> result;
GetErrorInfo(0, &pErrInfo);
ErrorMap.insert(std::make_pair(0, result));
我担心result 智能指针的所有权以及当ErrorMap 被销毁时它是否会正确释放?
【问题讨论】:
标签: c++ windows com atl smart-pointers