我正在用 C++ 在 Windows COM 中编写一个程序,并且正在使用CComPtr
智能指针。
我找不到答案的问题是 - 我可以CComPtr
在std::map
.
我有以下代码片段(简化):
std::map<int, CComPtr<IErrorInfo> > ErrorMap;
我希望维护int
s 和IErrorInfo
错误信息之间的这种映射。
但是我不确定我是否可以执行以下操作:
CComPtr<IErrorInfo> result;
GetErrorInfo(0, &pErrInfo);
ErrorMap.insert(std::make_pair(0, result));
我担心智能指针的所有权以及它是否会在被销毁result
时正确释放?ErrorMap