std::basic_filebuf<CharT,Traits>::operator=
std::basic_filebuf& operator=( std::basic_filebuf&& rhs ); | (1) | (since C++11) |
std::basic_filebuf& operator=( const std::basic_filebuf& rhs ) = delete; | (2) |
Присваивает другой объект basic_filebuf.
1) Сначала вызывает
close() для закрытия связанного файла, затем перемещает содержимое rhs в *this: буферы put и get, связанный файл, локаль, режим открытия, флаг 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 (публичный член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_filebuf/operator%3D