слабое_произведение, make_shared и освобождение памяти
Блок управленияshared_ptr
сохраняется, пока есть хотя бы одинweak_ptr
подарок. Если общий указатель был создан сmake_shared
это означает, что вся память объекта сохраняется. (Сам объект должным образом разрушен, но поскольку блок управления и память для объекта были выделены в один блок, какmake_shared
они могут быть освобождены только вместе.)
Правильно ли мое понимание?
Кажется, что такое поведение представляет собой проблему, например, в знаменитом"пример кеша", Память для объектов будет храниться всегда.
Это проблема в каких-то практических ситуациях? Долженshared_ptr
быть создан с помощью конструктора в такой ситуации (большой объект и намерение использоватьweak_ptr
s)?