std::auto_ptr::operator=
De cppreference.com
auto_ptr& operator=( auto_ptr& r ) throw();
|
(1) | (en desuso en C++11) (eliminado en C++17) |
template< class Y >
auto_ptr& operator=( auto_ptr<Y>& r ) throw();
|
(2) | (en desuso en C++11) (eliminado en C++17) |
auto_ptr& operator=( auto_ptr_ref m ) throw();
|
(3) | (en desuso en C++11) (eliminado en C++17) |
Reemplaza el objeto gestionado con el gestionado por r.
1) Efectivamente llama a
reset(r.release()). 2) Efectivamente llama a
reset(r.release()). Y* debe ser implícitamente convertible a T*.3) Efectivamente llama a
reset(m.release()). auto_ptr_ref es un tipo definido por la implementación que contiene una referencia a auto_ptr. std::auto_ptr es implícitamente convertible a y asignable desde este tipo. Se permite que la implementación proporcione a la plantilla un nombre diferente o implemente una funcionalidad equivalente de otras formas.Parámetros
| r | - | Otro auto_ptr del que transferir la propiedad del objeto.
|
| m | - | Un tipo definido por la implementación que contiene una referencia a auto_ptr.
|
Valor de retorno
*this.
Notas
El constructor y el operador de asignación de copia de auto_ptr_ref se proporcionan para permitir la construcción de copias y la asignación de std::auto_ptr de temporales sin nombre. Dado que su constructor de copia y su operador de asignación de copia toman el argumento como una referencia no constante, no pueden vincular argumentos de rvalue directamente. Sin embargo, se puede ejecutar una conversión definida por el usuario (que libera el auto_ptr original), seguida de una llamada al constructor o al operador de asignación de copia que toma auto_ptr_ref por valor. Esta es una implementación temprana de la semántica de movimiento.