Как я понимаю, std::weak_ptr
используется как безопасный способ обращения к памяти, на которую ссылается std::shared_ptr
которые могли быть освобождены. Можно ли его использовать с std::unique_ptr
также?
Насколько я понимаю, std :: weak_ptr используется как безопасный способ обращения к памяти, на которую ссылается shared_ptrs, которая могла быть освобождена.
Вы неправильно поняли. std::weak_ptr
позволяет получить доступ к объекту, право собственности на которое поддерживается std::shared_ptr
не делясь этим. Теперь, когда вы действительно понимаете, что std::weak_ptr
Вы должны понимать, что ваш вопрос о std::unique_ptr
не имеет никакого смысла.
Существует эквивалентный указатель, который действует как наблюдатель std::unique_ptr
, но не обеспечит безопасность так же, как std::weak_ptr
,
Этот указатель является необработанным указателем. Они безопасны в использовании, если не переживают уникального владельца.
Если вам нужно знать, закончилось ли время жизни владельца необработанного указателя, то нет, нет пути, и это не цель std::unique_ptr
,
Нету.
К сожалению, вам придется использовать std::shared_ptr
и документ, что std::weak_ptr
s должен быть заблокирован только временно.
Нет.
Единственные конструкторы, доступные для weak_ptr
те, которые принимают либо shared_ptr
или другой weak_ptr
,