std::basic_istream<CharT,Traits>:: operator=
From cppreference.net
<
cpp
|
io
|
basic istream
C++
Input/output library
| I/O manipulators | ||||
| Print functions (C++23) | ||||
| C-style I/O | ||||
| Buffers | ||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(C++20)
|
||||
| Streams | ||||
| Abstractions | ||||
| File I/O | ||||
| String I/O | ||||
| Array I/O | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
| Synchronized Output | ||||
|
(C++20)
|
||||
| Types | ||||
| Error category interface | ||||
|
(C++11)
|
||||
|
(C++11)
|
std::basic_istream
| Global objects | ||||
| Member functions | ||||
|
basic_istream::operator=
(C++11)
|
||||
| Formatted input | ||||
| Unformatted input | ||||
| Positioning | ||||
| Miscellaneous | ||||
|
(C++11)
|
||||
| Member classes | ||||
| Non-member functions | ||||
|
protected
:
basic_istream & operator = ( const basic_istream & rhs ) = delete ; |
(1) | |
|
protected
:
basic_istream & operator = ( basic_istream && rhs ) ; |
(2) | (desde C++11) |
1)
El operador de asignación de copia está protegido y está eliminado. Los flujos de entrada no son CopyAssignable.
2)
El operador de asignación de movimiento intercambia los valores de
gcount()
y todos los miembros de datos de la clase base, excepto
rdbuf()
, con
rhs
, como si llamara a
swap
(
*
rhs
)
. Este operador de asignación de movimiento está protegido: solo es llamado por los operadores de asignación de movimiento de las clases derivadas de flujo de entrada movibles
std::basic_ifstream
y
std::basic_istringstream
, que saben cómo asignar correctamente por movimiento los búferes de flujo asociados.
Parámetros
| rhs | - | el objeto basic_istream desde el cual asignar a * this |
Ejemplo
Ejecutar este código
#include <iostream> #include <sstream> int main() { std::istringstream s1; s1 = std::istringstream("test"); // CORRECTO // std::cin = std::istringstream("test"); // ERROR: 'operator=' está protegido }