Предположим, что у меня есть объект, которым управляет std::unique_ptr
. Другие части моего кода должны получить доступ к этому объекту. Какое правильное решение для передачи указателя? Должен ли я просто передать простой указатель на std::unique_ptr::get
, или я должен использовать и передавать std::shared_ptr
вместо std::unique_ptr
вообще?
У меня есть предпочтение std::unique_ptr
, потому что владелец этого указателя фактически отвечает за очистку. Если я использую общий указатель, есть шанс, что объект останется в живых из-за общего указателя, даже если он действительно должен быть уничтожен.
EDIT: К сожалению, я забыл упомянуть, что указатель не будет просто аргументом для вызова функции, но он будет сохранен в других объектах для создания сетевой структуры объектов. Я не предпочитаю общий указатель, потому что тогда уже не ясно, кто на самом деле владеет объектом.