Namespaces
Variants

std::auto_ptr<T>:: operator auto_ptr<Y>

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
template < class Y >
operator auto_ptr_ref < Y > ( ) throw ( ) ;
(1) (устарело в C++11)
(удалено в C++17)
template < class Y >
operator auto_ptr < Y > ( ) throw ( ) ;
(2) (устарело в C++11)
(удалено в C++17)

Преобразует * this в auto_ptr для другого типа Y .

1) Возвращает тип, определённый реализацией, который содержит ссылку на * this . std::auto_ptr является конвертируемым и присваиваемым из этого шаблона. Реализации разрешено предоставлять этот шаблон под другим именем или реализовывать эквивалентную функциональность другими способами.
2) Создает новый auto_ptr с указателем, полученным путем вызова release() .

Параметры

(нет)

Возвращаемое значение

1) Тип, определяемый реализацией, который содержит ссылку на * this .
2) auto_ptr с указателем, полученным вызовом release() .

Примечания

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