Spec-Zone.ru › C++

std::auto_ptr

Определён в заголовочном файле <memory>
template< class T > class auto_ptr;
(1) (устарел в C++11)
(удалён в C++17)
template<> class auto_ptr<void>;
(2) (устарел в C++11)
(удалён в C++17)

auto_ptr — это интеллектуальный указатель, который управляет объектом, полученным с помощью выражения new, и удаляет этот объект при уничтожении самого auto_ptr. Его можно использовать для обеспечения безопасности исключений при работе с динамически выделенными объектами, передачи владения динамически выделенными объектами функциям и возврата динамически выделенных объектов из функций.

Копирование auto_ptr копирует указатель и передаёт владение объекту назначения: как конструирование копированием, так и копирующее присваивание auto_ptr изменяют свои аргументы справа, а «копия» не равна оригиналу. Из-за такой необычной семантики копирования auto_ptr нельзя помещать в стандартные контейнеры. Для этого и других случаев предпочтительнее использовать std::unique_ptr.(начиная с C++11)

2) Предусмотрена специализация для типа void; она объявляет typedef element_type, но не содержит функций-членов.

В документации также упоминается дополнительный шаблон класса auto_ptr_ref. Это определяемый реализацией тип, который содержит ссылку на auto_ptr. Реализация может предоставить этот шаблон под другим именем или реализовать функции, возвращающие его либо принимающие его в качестве параметра, другим способом.

Типы-члены

Тип-член Определение
element_type T

Функции-члены

(конструктор)
создаёт новый auto_ptr
(открытая функция-член)
(деструктор)
уничтожает auto_ptr и управляемый объект
(открытая функция-член)
operator=
передаёт владение от другого auto_ptr
(открытая функция-член)
operator auto_ptr<Y>operator auto_ptr_ref<Y>
преобразует управляемый указатель в указатель на объект другого типа
(открытая функция-член)
Наблюдатели
get
возвращает указатель на управляемый объект
(открытая функция-член)
operator*operator->
обеспечивает доступ к управляемому объекту
(открытая функция-член)
Модификаторы
reset
заменяет управляемый объект
(открытая функция-член)
release
освобождает владение управляемым объектом
(открытая функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/auto_ptr

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API