我在C ++中使用std :: auto_ptr,下面是我的代码,
void fSample(std::auto_ptr<CFoo> pParam)
{
CFoo* pFoo = pParam.release();
fTodo(pFoo);
}
上面的代码为我提供了 Assertion failed: auto_ptr not derefencable
运行时错误。
请告知。
谢谢!
答案 0 :(得分:1)
通过引用传递auto_ptr。此外,不推荐使用auto_ptr。使用unique_ptr。
void fSample(std::auto_ptr<CFoo> &pParam) // <= Note the ampersand
{
CFoo* pFoo = pParam.release();
fTodo(pFoo);
}