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 .
Y*
должен быть неявно преобразуем в
T*
.
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) |