1

たとえば、次のようなスマート ポインターがあります。

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;
.....    
4

1 に答える 1