std::basic_filebuf<CharT,Traits>::swap (3) - Linux Manuals

std::basic_filebuf<CharT,Traits>::swap: std::basic_filebuf<CharT,Traits>::swap

NAME

std::basic_filebuf<CharT,Traits>::swap - std::basic_filebuf<CharT,Traits>::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
                              (public member function)
(C++11)


std::swap(std::basic_filebuf) specializes the std::swap algorithm
                              (function template)
(C++11)


swap swaps two file streams
                              (public member function of std::basic_fstream<CharT,Traits>)
(C++11)