Espacios de nombres
Variantes
Acciones

std::basic_ostream<CharT,Traits>::operator=

De cppreference.com
< cpp‎ | io‎ | basic ostream
 
 
 
 
protected:
basic_ostream& operator=(const basic_ostream& rhs )= delete;
(1)
protected:
basic_ostream& operator=( basic_ostream&& rhs );
(2) (desde C++11)
1) El operador de asignación de copia está protegido y está eliminado (= delete). Los flujos de salida no son CopyAssignable.
2) El operador de asignación de movimiento intercambia todos los datos miembro de la clase base, excepto rdbuf(), con rhs, como si llamara a swap(*rhs). Este operador de asignación de movimiento está protegido: solo lo llaman los operadores de asignación de movimiento de las clases de flujo de salida movibles derivadas std::basic_ofstream y std::basic_ostringstream, que saben cómo mover y asignar correctamente los búferes de flujo asociados.

[editar]Parámetros

rhs - El objeto basic_ostream desde el cual asignar a *this.

[editar]Ejemplo

#include <iostream>#include <sstream>#include <utility>   int main(){std::ostringstream s;// std::cout = s; // ERROR: el operador de asignación de copia está eliminado// std::cout = std::move(s); // ERROR: el operador de asignación de movimiento está protegido s = std::move(std::ostringstream()<<42);// de acuerdo, se movió mediante derivaciónstd::cout<< s.str()<<'\n';}

Salida:

42

[editar]Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 2067 C++11 1. the parameter type of overload (1) was basic_ostream&
2. the parameter type of overload (2) was const basic_ostream&&
1. added const
2. removed const
close