std::basic_ostream::operator=
来自cppreference.com
< cpp | io | basic ostream
|
|
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
| protected: basic_istream& operator=( const basic_ostream& rhs ) = delete; |
(1) | |
| protected: basic_ostream& operator=( basic_ostream&& rhs ); |
(2) | (C++11 起) |
1) The copy assignment operator is protected, and is deleted. Output streams are not CopyAssignable.
2) The move assignment operator exchanges 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 output stream classes std::basic_ofstream and std::basic_ostringstream, which know how to correctly move-assign the associated streambuffers.
[编辑] 参数
| rhs | - | the basic_ostream object from which to assign to *this |
[编辑] 示例
#include <sstream> #include <utility> #include <iostream> int main() { std::ostringstream s; // std::cout = s; // ERROR: copy assignment operator is deleted // std::cout = std::move(s); // ERROR: move assignment operator is protected s = std::move(std::ostringstream() << 42); // OK, moved through derived std::cout << s.str() << '\n'; }
输出:
42