Итак, я использую boost :: shared_ptr для всех различных преимуществ подсчета ссылок, которые он предоставляет - очевидно, для подсчета ссылок для начинающих, а также для возможности копирования, назначения и, следовательно, хранения в контейнерах STL.
Проблема в том, что, если я передам его только одной «вредоносной» функции или объекту, объект может сохранить ptr, и тогда я никогда не смогу отменить его выделение без посторонней функции или объекта, отказавшись от прав собственности. ,
В конечном счете, я стараюсь сохранить явное владение объектом. Я достигаю этого, когда владелец хранит только shared_ptr для объекта, а «гостевые» объекты хранят только weak_ptr для объекта.
Я действительно не хочу "разделяемую" часть shared_ptr, но мне нужно использовать shared_ptr для того, чтобы сделать weak_ptrs. Я хочу использовать scoped_ptr, но он крайне ограничен, поскольку вы не можете его скопировать. Вы не можете хранить его в контейнере, вы не можете выдавать слабые файлы из него и не можете передать право собственности новому менеджеру.
Какое решение?