std::basic_filebuf::swap(3)

NAME
std::basic_filebuf::swap - std::basic_filebuf::swap

Synopsis
   void swap( std::basic_filebuf& rhs ); (since C++11)
   Swaps the state and the contents of *this and rhs.

Parameters
   rhs - another basic_filebuf

Return value
   (none)

Notes
   This function is called automatically when swapping std::fstream objects, it is
   rarely necessary to call it directly.

Example
// Run this code
 #include <fstream>
 #include <string>
 #include <iostream>
 int main()
 {
     std::ifstream fin("test.in"); // read-only
     std::ofstream fout("test.out"); // write-only
     std::string s;
     getline(fin, s);
     std::cout << s << '\n'; // outputs the first line of test.in
     fin.rdbuf()->swap(*fout.rdbuf()); //swap the underlying buffers
     getline(fin, s); // fails: cannot read from a write-only filebuf
     std::cout << s << '\n'; // prints empty line
 }

See also
   operator= assigns a basic_filebuf object
   (C++11) (public member function)
   std::swap(std::basic_filebuf) specializes the std::swap algorithm
   (C++11) (function template)
   swap swaps two file streams
   (C++11) (public member function of
                        std::basic_fstream<CharT,Traits>)