table of contents
        
      
      
    | std::basic_filebuf::operator=(3) | C++ Standard Libary | std::basic_filebuf::operator=(3) | 
NAME¶
std::basic_filebuf::operator= - std::basic_filebuf::operator=
Synopsis¶
 std::basic_filebuf& operator=( std::basic_filebuf&&
    rhs ); (1) (since C++11)
  
   std::basic_filebuf& operator=( const std::basic_filebuf& rhs ) =
    (2)
  
   delete;
  
   Assigns another basic_filebuf object.
  
   1) First calls close() to close the associated file, then moves the contents
    of rhs
  
   into *this: the put and get buffers, the associated file, the locale, the
    openmode,
  
   the is_open flag, and any other state. After the move, rhs is not associated
    with a
  
   file and rhs.is_open() == false.
  
   2) The copy assignment operator is deleted; basic_filebuf is not
    CopyAssignable.
Parameters¶
rhs - another basic_filebuf that will be moved from
Return value¶
*this
Example¶
// Run this code
  
   #include <cassert>
  
   #include <fstream>
  
   #include <iostream>
  
   #include <string>
  
   int main()
  
   {
  
   std::ofstream{"test.in"} << "test\n"; // writes via
    a temporary object
  
   std::ifstream fin("test.in"); // read-only stream
  
   std::ofstream fout("test.out"); // write-only stream
  
   std::string s;
  
   std::getline(fin, s);
  
   std::cout << "s = [" << s << "]\n"; //
    s contains "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 is empty input
  
   }
Output:¶
 s = [test]
  
   s = []
See also¶
 constructor constructs a basic_filebuf object
  
   (public member function)
  
   swap swaps two basic_filebuf objects
  
   (C++11) (public member function)
| 2024.06.10 | http://cppreference.com |