Medium-rare wrote: ↑24 Jan 2018 00:32
Ни тот, ни другой smart pointer не бьют тип с прописанным move, помещённый в контейнер. Это если давить на то, что хорошо.
Полная операбльность, и без потерь в чём-либо. А тут как везде в Интернете, мы себе представляем не совсем то, что говорится.
Дайте контейнерному типу move semantics. Ну,
для примера.
К чему это здесь???
Хранение в контейнере "по указателю" и хранение в контейнере "по значению" - это совершенно разные вещи, решения о которых принимаются исходя из совершенно посторонних соображений, каковые в этом разговоре даже отдаленно пока не упоминались. Если вам нужен именно указатель - значит вам нужен именно указатель. Никакой "тип с прописанным move" вам его никак не заменит.
Да, если кто-то хранит в контейнере указатели, когда мог бы хранить сами объекты - это неправильно. Но никто к этому в данной теме и не призывал. Поэтому не ясно, о каком "бьют" или "не бьют" тут идет речь.
Medium-rare wrote: ↑24 Jan 2018 00:32И далее обсуждение двух вумных пойнтеров, оба из которых хуже в обсуждаемом применении начиная с C++ 11.
Практический моск взрываццо.
Хуже
чего? Покажите мне, как ваш "тип с прописанным move" поможет хранить в контейнере полиморфные объекты? Покажите мне, как ваш "тип с прописанным move" поможет хранить в контейнере объекты, которые доступны вам только через хэндлы/opaque указатели, предоставленные вам сторонней библиотекой?
`unique_ptr`, `shared_ptr` и т.п. надо применять там, где независимое динамическое выделение памяти и, соответственно, применение указателей
уместно или
требуется. Приводить примеры неуместного/неправильного использования этих указателей и вдруг критиковать за это сами указатели - это довольно примитивная демагогия.