Сообщение Re[4]: Должен ли my::unique_ptr клонировать объект при копир от 20.12.2018 22:28
Изменено 20.12.2018 22:36 rg45
Re[4]: Должен ли my::unique_ptr клонировать объект при копировании
Здравствуйте, Alexander G, Вы писали:
W>>Ну, довольно таки надо. Название "уникальный" говорит только о том, что он уникально владеет своим объектом и копирование через клонирование объекта этот принцип не нарушает, ведь так?
AG>Думаю, лучше не называть это unique_ptr. Из-за стандартизированного неклонирующего unique_ptr, клонирующий кастомный unique_ptr будет сюрпризом, даже несмотря на то, что уникальность владения соблюдается.
Признаться, не вижу я здесь никакого сюрприза. Чего еще можно ожидать от unique_ptr, допускающего копирование?
W>>Ну, довольно таки надо. Название "уникальный" говорит только о том, что он уникально владеет своим объектом и копирование через клонирование объекта этот принцип не нарушает, ведь так?
AG>Думаю, лучше не называть это unique_ptr. Из-за стандартизированного неклонирующего unique_ptr, клонирующий кастомный unique_ptr будет сюрпризом, даже несмотря на то, что уникальность владения соблюдается.
Признаться, не вижу я здесь никакого сюрприза. Чего еще можно ожидать от unique_ptr, допускающего копирование?
Re[4]: Должен ли my::unique_ptr клонировать объект при копир
Здравствуйте, Alexander G, Вы писали:
W>>Ну, довольно таки надо. Название "уникальный" говорит только о том, что он уникально владеет своим объектом и копирование через клонирование объекта этот принцип не нарушает, ведь так?
AG>Думаю, лучше не называть это unique_ptr. Из-за стандартизированного неклонирующего unique_ptr, клонирующий кастомный unique_ptr будет сюрпризом, даже несмотря на то, что уникальность владения соблюдается.
Признаться, не вижу я здесь никакого сюрприза. Чего еще можно ожидать от unique_ptr, допускающего копирование?
Для пущей надежности его можно определить как-то так:
W>>Ну, довольно таки надо. Название "уникальный" говорит только о том, что он уникально владеет своим объектом и копирование через клонирование объекта этот принцип не нарушает, ведь так?
AG>Думаю, лучше не называть это unique_ptr. Из-за стандартизированного неклонирующего unique_ptr, клонирующий кастомный unique_ptr будет сюрпризом, даже несмотря на то, что уникальность владения соблюдается.
Признаться, не вижу я здесь никакого сюрприза. Чего еще можно ожидать от unique_ptr, допускающего копирование?
Для пущей надежности его можно определить как-то так:
template <typename, typename = void>
class UniquePtr;
template <typename T>
class UniquePtr<typename T, std::enable_if_t<IsCloneable<T>::value>>
{
// . . .
};