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 回答