我在C ++中使用std :: auto_ptr,下面是我的代码,
void fSample(std::auto_ptr<CFoo> pParam)
{
CFoo* pFoo = pParam.release();
fTodo(pFoo);
}
上面的代码给了我
Assertion failed: auto_ptr not derefencable
运行时错误。请指教。
谢谢!
最佳答案
通过引用传递auto_ptr。另外,不建议使用auto_ptr。使用unique_ptr。
void fSample(std::auto_ptr<CFoo> &pParam) // <= Note the ampersand
{
CFoo* pFoo = pParam.release();
fTodo(pFoo);
}