std::basic_filebuf<CharT,Traits>::operator=
来自 cppreference.com
< cpp | io | basic filebuf
std::basic_filebuf& operator=( std::basic_filebuf&& rhs ); |
(1) | (自 C++11 起) |
std::basic_filebuf& operator=( const std::basic_filebuf& rhs ) = delete; |
(2) | |
为另一个 basic_filebuf
对象赋值。
1) 首先调用 close() 关闭关联的文件,然后将 rhs 的内容移动到 *this 中:put 和 get 缓冲区、关联的文件、区域设置、openmode、is_open 标志以及任何其他状态。移动后,rhs 不再与任何文件关联,并且 rhs.is_open() == false.
内容 |
[编辑] 参数
rhs | - | 另一个将要从中移动的 basic_filebuf |
[编辑] 返回值
*this
[编辑] 示例
运行此代码
#include <cassert> #include <fstream> #include <iostream> #include <string> int main() { std::ofstream{"test.in"} << "test\n"; // writes via a temporary object std::ifstream fin("test.in"); // read-only stream std::ofstream fout("test.out"); // write-only stream std::string s; std::getline(fin, s); std::cout << "s = [" << s << "]\n"; // s contains "test" assert(fout.is_open()); *fin.rdbuf() = std::move(*fout.rdbuf()); assert(!fout.is_open()); std::getline(fin, s); std::cout << "s = [" << s << "]\n"; // s is empty input }
输出
s = [test] s = []
[编辑] 参见
构造一个 basic_filebuf 对象(公共成员函数) | |
(C++11) |
交换两个 basic_filebuf 对象(公共成员函数) |