Namespaces
Variants

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

From cppreference.net
(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 .
2) Der Kopierzuweisungsoperator ist gelöscht; basic_filebuf ist nicht CopyAssignable .

Inhaltsverzeichnis

Parameter

rhs - ein weiterer basic_filebuf , von dem verschoben wird

Rückgabewert

* this

Beispiel

#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)