3

次の方法で 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*

このキャスティングを正しく行うにはどうすればよいですか? また、逆にどのように使用できますか?

4

1 に答える 1

4

.get()auto-ptr が保持するポインターにアクセスするために使用します。

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

また、auto_ptrは非推奨ですunique_ptr。代わりに使用してください。

于 2013-11-10T08:55:57.610 に答える