Spec-Zone.ru › C++

std::auto_ptr<T>::operator=

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++.

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

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

Spec-Zone.ru

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