std::basic_istream<CharT,Traits>::operator=
来自 cppreference.cn
< cpp | io | basic istream
protected: basic_istream& operator=( const basic_istream& rhs ) = delete; |
(1) | |
protected: basic_istream& operator=( basic_istream&& rhs ); |
(2) | (since C++11) |
1) 复制赋值运算符是受保护的,且被删除。输入流不可复制赋值。
2) 移动赋值运算符交换
gcount()
的值和基类的所有数据成员,除了 rdbuf(),与 rhs 交换,如同调用 swap(*rhs)。此移动赋值运算符是受保护的:它仅由派生的可移动输入流类 std::basic_ifstream 和 std::basic_istringstream 的移动赋值运算符调用,这些类知道如何正确地移动赋值关联的流缓冲区。[edit] 参数
rhs | - | 要从中赋值给 *this 的 basic_istream 对象 |
[edit] 示例
运行此代码
#include <iostream> #include <sstream> int main() { std::istringstream s1; s1 = std::istringstream("test"); // OK // std::cin = std::istringstream("test"); // ERROR: 'operator=' is protected }