Пространства имён
Варианты
Действия

std::auto_ptr<T>::auto_ptr

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Динамическое управление памятью
no section name
Ограниченные алгоритмы неинициализированной памяти
no section name
Поддержка сбора мусора
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)



no section name
 
 
<tbody> </tbody>
explicit auto_ptr( X* p = 0 ) throw();
(1) (устарело в C++11)
(удалено в C++17)
auto_ptr( auto_ptr& r ) throw();
(2) (устарело в C++11)
(удалено в C++17)
template< class Y > auto_ptr( auto_ptr<Y>& r ) throw();
(3) (устарело в C++11)
(удалено в C++17)
auto_ptr( auto_ptr_ref<X> m ) throw();
(4) (устарело в C++11)
(удалено в C++17)

Создаёт auto_ptr из указателя, ссылающегося на управляемый объект.

1) Создаёт auto_ptr с указателем p.
2) Создаёт auto_ptr с указателем, хранящимся в r. Для получения права собственности на объект вызывается r.release().
3) То же, что (2). Y* должно быть неявно преобразовано в T*.
4) Создаёт auto_ptr с указателем, хранящимся в экземпляре auto_ptr, на который ссылается m. Для auto_ptr p, который содержит m, вызывается p.release(), чтобы получить право владения объектом.
auto_ptr_ref это тип, определяемый реализацией, который содержит ссылку на auto_ptr. std::auto_ptr неявно преобразуется в и присваивается из этого типа. В реализации разрешено предоставлять шаблону другое имя или реализовывать эквивалентную функциональность другими способами.

Параметры

p указатель на объект для управления
r другой auto_ptr из которого передавать право владения объектом
m тип, определяемый реализацией, который содержит ссылку на auto_ptr

Примечание

Конструктор и оператор присваивания копированием из auto_ptr_ref позволяют создавать копии и присваивать std::auto_ptr из безымянных временных объектов. Поскольку его конструктор копирования и оператор присваивания копированием принимают аргумент как неконстантную ссылку, они не могут напрямую связывать аргументы rvalue. Однако может быть выполнено пользовательское преобразование (которое освобождает исходный auto_ptr), за которым следует вызов конструктора или оператора присваивания копированием, которые принимают auto_ptr_ref по значению. Это ранняя реализация семантики перемещения.