3
我正在用C++編寫Windows COM中的程序,並且我正在使用CComPtr
作爲智能指針。我可以在std :: map中使用CComPtr嗎?
我無法找到答案的問題是 - 我可以在std::map
內使用CComPtr
。
我有以下代碼片段(簡化):
std::map<int, CComPtr<IErrorInfo> > ErrorMap;
我希望保持int
S和IErrorInfo
錯誤的相關信息之間這種映射。
但是我不知道如果我能做到以下幾點:
CComPtr<IErrorInfo> result;
GetErrorInfo(0, &pErrInfo);
ErrorMap.insert(std::make_pair(0, result));
我關心的result
智能指針的所有權,是否會得到正確釋放時ErrorMap
被破壞?
在C++ 11中,您不應該這樣做,因爲CopyConstructible需求不再需要'operator&'以正常方式工作。 – 2012-04-17 19:44:55