Re: Должен ли my::unique_ptr клонировать объект при копировании
От: Mr.Delphist  
Дата: 21.12.18 17:44
Оценка:
Здравствуйте, Went, Вы писали:

W>Здравствуйте. Просто мысли о правильном поведении уникального указателя. Допустим, у нас есть некая базовая библиотека, которая предполагает возможность корректного клонирования для любого объекта. Должен ли самописный уникальный указатель в этом случае реализовать собственное копирование через клонирование объекта, которым он владеет, или это концептуально неверно?


Копирование указателя или копирование (клонирование) контента — это вообще не область ответственности самого указателя. В разных ситуациях может требоваться разная семантика для одного и того же экземпляра данных. Не надо трогать сову, пожалуйста.
Re[2]: Должен ли my::unique_ptr клонировать объект при копировании
От: Went  
Дата: 22.12.18 14:36
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:
MD>Копирование указателя или копирование (клонирование) контента — это вообще не область ответственности самого указателя. В разных ситуациях может требоваться разная семантика для одного и того же экземпляра данных. Не надо трогать сову, пожалуйста.
Клонирование — не область, а удаление — область? Я согласен, само название *_ptr для всех умных указателей не сильно логично, потому что умные указатели (ну, кроме weak_ptr, наверное) уже не указывают на объект, а так или иначе владеют им. Ну, вот, признайтесь, любой умный указатель уже совсем не то, чем был обычный указатель в С. Можно, например, "умно" указать на объект-член внутри какого-то другого объекта? Нет. Можно "умно" указать на функцию? Нет. Можно инкрементировать или декрементировать умный указатель? Нет. Любой умный указатель указатель лишь тем, что у него есть оператор *, оператор -> и его можно сравнить с обычным указателем. Даже безопасно инициализировать обычным указателем его нельзя без сотни оговорок. Так раз умный указатель уже не указатель, то кто должен очертить границы, как далеко можно умному указателю уйти от своего далекого предка?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.