将auto_ptr转换为void指针

时间:2013-11-10 08:46:26

标签: c++ casting smart-pointers auto-ptr

我试图以下列方式将auto_ptr转换为void指针:

void *AM::This2Ctx(std::auto_ptr<AMContext> data)
{
 return reinterpret_cast<void *>(data);
}

但我不断收到编译错误:

error: invalid cast from type std::auto_ptr<AMContext> to type void*

如何正确完成此演员表?以及如何以相反的方式使用它?

1 个答案:

答案 0 :(得分:4)

使用.get()访问auto-ptr所持有的指针:

reinterpret_cast<void *>(data.get());
                             ~~~~~~

此外,不推荐使用auto_ptr,而是使用unique_ptr