std::basic_istream<CharT,Traits>:: operator=
From cppreference.com
<
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) | (since C++11) |
1)
The copy assignment operator is protected, and is deleted. Input streams are not CopyAssignable.
2)
The move assignment operator exchanges the
gcount()
values and all data members of the base class, except for
rdbuf()
, with
rhs
, as if by calling
swap
(
*
rhs
)
. This move assignment operator is protected: it is only called by the move assignment operators of the derived movable input stream classes
std::basic_ifstream
and
std::basic_istringstream
, which know how to correctly move-assign the associated streambuffers.
Parameters
rhs | - | the basic_istream object from which to assign to * this |
Example
Run this code
#include <iostream> #include <sstream> int main() { std::istringstream s1; s1 = std::istringstream("test"); // OK // std::cin = std::istringstream("test"); // ERROR: 'operator=' is protected }
Retrieved from "
https://en.cppreference.com/mwiki/index.php?title=cpp/io/basic_istream/operator%3D&oldid=158523
"