Namespaces
Variants

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

From cppreference.net
(1) (depuis C++11)
std:: basic_filebuf & operator = ( const std:: basic_filebuf & rhs ) = delete ;
(2)

Assigne un autre objet basic_filebuf .

1) Appelle d'abord close() pour fermer le fichier associé, puis déplace le contenu de rhs dans * this : les tampons de put et get, le fichier associé, la locale, le mode d'ouverture, le drapeau is_open, et tout autre état. Après le déplacement, rhs n'est plus associé à un fichier et rhs. is_open ( ) == false .
2) L'opérateur d'affectation par copie est supprimé ; basic_filebuf n'est pas CopyAssignable .

Table des matières

Paramètres

rhs - un autre basic_filebuf qui sera déplacé

Valeur de retour

* this

Exemple

#include <cassert>
#include <fstream>
#include <iostream>
#include <string>
int main()
{
    std::ofstream{"test.in"} << "test\n"; // écrit via un objet temporaire
    std::ifstream fin("test.in"); // flux en lecture seule
    std::ofstream fout("test.out"); // flux en écriture seule
    std::string s;
    std::getline(fin, s);
    std::cout << "s = [" << s << "]\n"; // s contient "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 est une entrée vide
}

Sortie :

s = [test]
s = []

Voir aussi

construit un objet basic_filebuf
(fonction membre publique)
(C++11)
échange deux objets basic_filebuf
(fonction membre publique)