std::basic_filebuf<CharT,Traits>:: operator=
From cppreference.net
<
cpp
|
io
|
basic filebuf
|
std::
basic_filebuf
&
operator
=
(
std::
basic_filebuf
&&
rhs
)
;
|
(1) | (seit C++11) |
|
std::
basic_filebuf
&
operator
=
(
const
std::
basic_filebuf
&
rhs
)
=
delete
;
|
(2) | |
Weist ein anderes
basic_filebuf
Objekt zu.
1)
Ruft zunächst
close()
auf, um die zugehörige Datei zu schließen, und verschiebt dann die Inhalte von
rhs
in
*
this
: die Put- und Get-Puffer, die zugehörige Datei, das Locale, den Openmode, das is_open-Flag und jeden anderen Zustand. Nach dem Verschieben ist
rhs
nicht mit einer Datei assoziiert und
rhs.
is_open
(
)
==
false
.
Inhaltsverzeichnis |
Parameter
| rhs | - |
ein weiterer
basic_filebuf
, von dem verschoben wird
|
Rückgabewert
* this
Beispiel
Diesen Code ausführen
#include <cassert> #include <fstream> #include <iostream> #include <string> int main() { std::ofstream{"test.in"} << "test\n"; // schreibt über ein temporäres Objekt std::ifstream fin("test.in"); // Nur-Lese-Stream std::ofstream fout("test.out"); // Nur-Schreib-Stream std::string s; std::getline(fin, s); std::cout << "s = [" << s << "]\n"; // s enthält "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 ist leerer Input }
Ausgabe:
s = [test] s = []
Siehe auch
Konstruiert ein
basic_filebuf
Objekt
(öffentliche Elementfunktion) |
|
|
(C++11)
|
Tauscht zwei
basic_filebuf
Objekte aus
(öffentliche Elementfunktion) |