std::basic_filebuf<CharT,Traits>::operator=
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: буферы чтения и записи, связанный файл, локаль, режим открытия, флаг is_open и любое другое состояние. После перемещения rhs не связан с файлом и rhs.is_open() == false.
2) Оператор копирующего присваивания удалён;
basic_filebuf не удовлетворяет требованиям CopyAssignable.Параметры
| 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/cpp/io/basic_filebuf/operator%3D