Namespaces
Variants

std::auto_ptr<T>:: operator=

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)
auto_ptr & operator = ( auto_ptr & r ) throw ( ) ;
(1) (устарел в C++11)
(удален в C++17)
template < class Y >
auto_ptr & operator = ( auto_ptr < Y > & r ) throw ( ) ;
(2) (устарел в C++11)
(удален в C++17)
auto_ptr & operator = ( auto_ptr_ref < T > m ) throw ( ) ;
(3) (устарел в C++11)
(удален в C++17)

Заменяет управляемый объект на тот, которым управляет r или m .

1) Эффективно вызывает reset ( r. release ( ) ) .
2) Эффективно вызывает reset ( r. release ( ) ) . Y* должен быть неявно преобразуем в T* .
3) Эффективно вызывает reset ( m. release ( ) ) . auto_ptr_ref — это тип, определённый реализацией, который хранит ссылку на auto_ptr . std::auto_ptr неявно преобразуется в и из этого типа. Реализация может использовать для этого шаблона другое имя или реализовать эквивалентную функциональность другими способами.

Содержание

Параметры

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

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

* this .

Примечания

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

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применяется к Поведение в опубликованной версии Корректное поведение
LWG 127 C++98 auto_ptr не был присваиваемым из auto_ptr_ref добавлена перегрузка (3)