Можно ли извлечь необработанный указатель из объекта std::shared_ptr
или std::tr1::shared_ptr
? Цель состоит в том, чтобы сообщить объекту интеллектуального указателя, что я больше не хочу, чтобы он управлял временем жизни объекта. Контекст состоит в том, что у меня есть API, который принимает исходный указатель от пользователей и выполняет некоторую обработку объекта. Чтобы упростить управление, API создает shared_ptr
из этого необработанного указателя. Теперь пользователь может попросить вернуть объект. В этом случае, возвращая обработанный объект пользователю, я хочу вернуть необработанный указатель. Однако я не нашел способа сделать это. Использование .get()
невозможно, так как в этом случае интеллектуальный указатель должен будет оставаться в рабочем состоянии бесконечно. Я бы отдал unique_ptr
, но он недоступен в tr1
.
В основном я хочу переместить необработанный указатель из shared_ptr.