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).
element_type
, но не содержит функций-элементов.Содержание |
[править] Типы-элементы
Тип элемент | Определение |
element_type | T |
[править] Функции-элементы
создаёт новый auto_ptr (public функция-элемент) | |
уничтожает auto_ptr и управляемый объект (public функция-элемент) | |
передаёт право владения другому auto_ptr (public функция-элемент) | |
преобразует управляемый указатель в указатель на другой тип (public функция-элемент) | |
Наблюдатели | |
возвращает указатель на управляемый объект (public функция-элемент) | |
обращается к управляемому объекту (public функция-элемент) | |
Модификаторы | |
заменяет управляемый объект (public функция-элемент) | |
освобождает право владения управляемым объектом (public функция-элемент) |