Здравствуйте, Άнoним, Вы писали:
Ά>У меня практически везде "владеющие" указатели. Т.е. есть какой-то класс, в нем указатель на что-то другое, в конструкторе создается объект и в деструкторе удаляется. Никто больше его удалить не может.
Но в процессе эволюции кода явное удаление в деструкторе может потерятся. Лишняя мелочь, слежение за которой можно возложить на компилятор.
Ά>Но я вот чего не понимаю: этот unique_ptr можно только перемещать. Как же я в таком случае отдам адрес объекта, на который указывает unique_ptr, кому-то для каких-то действий, если его передавать как аргумент функции нельзя???
Ά>А если я его преобразую к обычному указателю и передам, то в чем тогда смысл уникальности?
Если для владеющих указателей использовать raii обертки (unique для уникальных, shared для разделяемых и т.д.), то в коде не остается явных вызовов delete. И тогда можно для себя ввести правило, что голый указатель — он всегда не владеющий.