0

私は C++ で std::auto_ptr を使用しています。以下は私のコードです。

void fSample(std::auto_ptr<CFoo> pParam)
{
    CFoo* pFoo = pParam.release();
    fTodo(pFoo);
}

上記のコードでAssertion failed: auto_ptr not derefencable実行時エラーが発生します。

お知らせ下さい。

ありがとう!

4

1 に答える 1

1

参照によって auto_ptr を渡します。また、auto_ptr は非推奨です。unique_ptr を使用します。

void fSample(std::auto_ptr<CFoo> &pParam) // <= Note the ampersand
{
    CFoo* pFoo = pParam.release();
    fTodo(pFoo);
}
于 2012-11-30T09:43:22.330 に答える