улучшения / изменения в указателях со временем? - PullRequest
1 голос
/ 11 июня 2011

возможно, указатели проходили курс модификации обычных указателей на auto_ptr на unique_ptr и shared_ptr

Я просто хотел знать, что новые типы указателей, которые были разработаны, полностью перегоняют более старые версии (ИЛИверсии указателей, о которых вы можете подумать, что у вас проблемы с утечкой памяти)

Я не думаю, что обычные указатели мертвы, но недавно я наткнулся на auto-ptr, а затем немного узнал о добавленных shared_ptr и unique_ptrв C ++ ox.Я не могу использовать их (shared_ptr и unique_ptr), хотя, потому что у меня Visual C ++ 2008.

Также полностью ли auto_ptr перешла в руки unique_ptr и shared_ptr?

Пожалуйстадать некоторое представление.

Ответы [ 2 ]

4 голосов
/ 11 июня 2011

Необработанные указатели все еще полезны, если вы не владеете объектом, на который он указывает. auto_ptr официально устарел (так что да, он довольно мертв для нового кода). VS2008 обеспечивает shared_ptr, хотя как часть TR1, и всегда есть Boost. Я не вижу необходимости в каких-либо других умных указателях в моей жизни на C ++.

1 голос
/ 12 июня 2011

Qt предлагает QSharedDataPointer , который помогает обеспечить функциональность копирования при записи. Однако это навязчиво в том смысле, что он принимает только типы, полученные из QSharedData, а не произвольные данные. Моя личная библиотека служебных объектов включает тип deep_ptr с конструктором копирования, который копирует сохраненные данные, а не просто накладывает указатель на псевдоним. Он используется исключительно как средство реализации Pimpls, так что мне не нужно беспокоиться о реализации Big 3, но я все же получаю семантику значений из коробки.

Но на самом деле shared_ptr, weak_ptr и unique_ptr действительно предоставляют практически все необходимые функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...