В моем новом проекте я хотел бы (в основном, чтобы увидеть, как это будет работать) полностью запретить необработанные указатели из моего кода.
Мой первый подход состоял в том, чтобы позволить всем классам наследовать от этого простого класса: шаблон класса Base {public: typedef std :: shared_ptr ptr;};
И просто используйте class :: ptr везде, где мне нужен указатель.
Этот подход казался подходящим, пока я не осознал, что иногда мои объекты хотят передать указатель this на другие объекты.Позволить моим объектам просто обернуть его в shared_ptr не будет с тех пор может быть два владельца для одного и того же указателя.Я предполагаю, что это плохо.
Моя следующая идея состояла в том, чтобы изменить класс 'Base' для реализации самого подсчета ссылок, поэтому каждый экземпляр классов, который наследуется от 'Base', может иметь только один счет.
Это хорошее решение, есть ли что-нибудь лучше и может ли оно повысить и / или stl уже решить эту проблему для меня?