我正在使用C++编写Windows COM程序,使用CComPtr作为智能指针。
但我遇到了一个问题——我能否在std::map中使用CComPtr?
以下是我的简化代码片段:
std::map<int, CComPtr<IErrorInfo> > ErrorMap;
我希望能够维持int类型和IErrorInfo错误信息之间的映射关系。
但我不确定是否可以执行以下操作:
CComPtr<IErrorInfo> result;
GetErrorInfo(0, &pErrInfo);
ErrorMap.insert(std::make_pair(0, result));
我关心的是 result
智能指针的所有权问题,当 ErrorMap
被销毁时,它是否会被正确释放?
operator&
以正常方式工作。 - Alan Stokes