例如,我有这样一个智能指针:
template <typename T>
class SmartPointer
{
public:
....
T* operator & () { return m_p; }
private:
T* m_p;
}
void foo()
{
std::vector<SmartPointer<int> >vec;
vec.push_back(....);
vec.resize(.....);
......
}
这种用法安全吗?我在 MINGW4.4 中尝试过,它工作正常....
事实上,那些代码是用于 COM 的,当我想获取一个对象时,我需要做这些
SmpartPointer<COMObj> spObj;
HRESULT hr = xxxxx->QueryInterface(&spObj);
然后我想将指针存储在向量中,所以
std::vector<SmpartPointer<COMObj> >vec;
.....