Приведение auto_ptr к пустому указателю

Я пытаюсь привести auto_ptr к аннулированию указателя следующим образом:

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*

как правильно провести кастинг? и как это можно использовать противоположным образом?

3

Решение

использование .get() чтобы получить доступ к указателю, удерживаемому auto-ptr:

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

К тому же, auto_ptr устарела, использовать unique_ptr вместо.

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector