std::basic_istream<CharT,Traits>::operator=
From cppreference.com
 
 
 < cpp | io | basic istream 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
Input/output library 
 
 
 
 
 
 
 
 
 
 
 
 
 Print functions (C++23)
 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) 
 
basic_istream& operator=( const basic_istream& rhs ) = delete;
protected:
basic_istream& operator=( basic_istream&& rhs );
 (2) 
 (since C++11) 
basic_istream& operator=( basic_istream&& rhs );
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.[edit] Parameters
 rhs
 -
 the basic_istream object from which to assign to *this
[edit] 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 }