Этот вопрос поднят после прочтения этого руководства: http://www.cprogramming.com/tutorial/auto_ptr.html
Здесь вы можете найти следующее утверждение: Тонким следствием этого поведения является то, что auto_ptrs не работает хорошо во всех сценариях. Например, использование объектов auto _ptr со стандартной библиотекой шаблонов может привести к проблемам, поскольку некоторые функции в STL могут делать копии объектов в контейнерах, таких как класс векторного контейнера. Одним из примеров является функция сортировки, которая делает копии некоторых объектов в сортировке контейнера. Как следствие, эта копия может blithely удалить данные в контейнере!
Большинство статей, касающихся "auto_ptr", рассказывают нам следующее:
"Никогда не используйте auto_ptr с контейнерами STL, они часто копируют свои элементы при выполнении внутренних операций. Например, рассмотрите sort
on std::vector
".
Итак, моя цель написать образец кода, который иллюстрирует этот момент, или доказать, что такие примеры теоретически верны и странны на практике.
P.S. @everybody_who_also_knows_that_auto_ptr_is_deprecated
Я также знаю. Но разве вы не рассматриваете технические причины (устаревший код или старый компилятор), которые могут не разрешать использование новых контейнеров-указателей? И, кроме того, этот вопрос касается старых и плохих (если хотите) auto_ptr
.