std::basic_filebuf<CharT,Traits>::operator=

< cpp‎ | io‎ | basic filebuf
(C++11 起)
std::basic_filebuf& operator=( const std::basic_filebuf& rhs ) = delete;

赋值另一 basic_filebuf 对象。

1) 首先调用 close() 关闭关联文件,然后移动 rhs 的内容到 *this 中:获取与放置缓冲区、本地环境、打开模式、打开标志及任何其他状态。移动后, rhs 不与文件关联且 rhs.is_open() == false
2) 复制赋值运算符被删除; basic_filebuf可复制赋值 (CopyAssignable)

参数

rhs - 将被移动的另一 basic_filebuf

返回值

*this

示例

#include <fstream>
#include <string>
#include <iostream>
 
int main()
{
 
    std::ifstream fin("test.in"); // 只读
    std::ofstream fout("test.out"); // 只写
 
    std::string s;
    getline(fin, s);
    std::cout << s << '\n'; // 输出
 
    *fin.rdbuf() = std::move(*fout.rdbuf());
 
    getline(fin, s);
    std::cout << s << '\n'; // 空行
 
    std::cout << std::boolalpha << fout.is_open() << '\n'; // 打印 "false"
 
}


参阅

构造 basic_filebuf 对象
(公开成员函数)
(C++11)
交换二个 basic_filebuf 对象
(公开成员函数)