Как мне получить weak_ptr<void>
в shared_ptr<Type>
?
Как мне заблокировать weak_ptr<void>
и в конечном итоге создать shared_ptr<Type>
?
Type
имеет нетривиальный деструктор, правильно ли предположить, что weak_ptr<...>
никогда не вызовет этот деструктор?
Слабый указатель void - это то, что мне нужно в этом случае, он используется только для отслеживания счетчика ссылок общих указателей нескольких типов и выдачи общих указателей на существующие объекты без собственного владения объектом (это часть одного объекта много менеджер ресурсов ссылок).
weak_ptr
уничтожить общий объект? Или что именно? - person David Schwartz   schedule 27.07.2019foo.lock();
иfoo
представляет собойweak_ptr
, это может вызвать деструктор при некоторых условиях (поскольку он создает, а затем уничтожаетshared_ptr
). - person David Schwartz   schedule 27.07.2019weak_ptr
уничтожает объект, а результирующийshared_ptr
выполняет свою работу, уничтожая объект, когда все ссылки на объект исчезают. Так что нет никаких проблем, потому что никто не оставлен заботиться. - person Remy Lebeau   schedule 27.07.2019weak_ptr
не может уничтожить базовый объект, и что вызовlock
является операцией надweak_ptr
. - person David Schwartz   schedule 27.07.2019