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) | (自 C++11 起) |
1)
复制赋值运算符受保护且被删除。输入流不可复制赋值。
2)
移动赋值运算符交换
gcount()
值及基类的所有数据成员(除
rdbuf()
外)与
rhs
的对应成员,如同通过调用
swap
(
*
rhs
)
实现。此移动赋值运算符为受保护成员:仅可由派生可移动输入流类
std::basic_ifstream
和
std::basic_istringstream
的移动赋值运算符调用,这些派生类知晓如何正确移动赋值关联的流缓冲区。
参数
| rhs | - | 用于向 * this 赋值的基础输入流对象 |
示例
运行此代码
#include <iostream> #include <sstream> int main() { std::istringstream s1; s1 = std::istringstream("test"); // 正确 // std::cin = std::istringstream("test"); // 错误:'operator=' 是受保护的 }