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

std::basic_ofstream<CharT,Traits>::basic_ofstream: std::basic_ofstream<CharT,Traits>::basic_ofstream


std::basic_ofstream<CharT,Traits>::basic_ofstream - std::basic_ofstream<CharT,Traits>::basic_ofstream


basic_ofstream(); (1)
explicit basic_ofstream( const char* filename, (2)
std::ios_base::openmode mode = ios_base::out );
explicit basic_ofstream( const std::filesystem::path::value_type* filename, (3) (since C++17)
std::ios_base::openmode mode = ios_base::out );
explicit basic_ofstream( const std::string& filename, (4) (since C++11)
std::ios_base::openmode mode = ios_base::out );
explicit basic_ofstream( const std::filesystem::path& filename, (5) (since C++17)
std::ios_base::openmode mode = ios_base::out );
basic_ofstream( basic_ofstream&& other ); (6) (since C++11)
basic_ofstream( const basic_ofstream& rhs) = delete; (7) (since C++11)

Constructs new file stream.
1) Default constructor: constructs a stream that is not associated with a file: default-constructs the std::basic_filebuf and constructs the base with the pointer to this default-constructed std::basic_filebuf member.
2-3) First, performs the same steps as the default constructor, then associates the stream with a file by calling rdbuf()->open(filename, mode | std::ios_base::out) (see std::basic_filebuf::open for the details on the effects of that call). If the open() call returns a null pointer, sets setstate(failbit).
Overload (3) is only provided if std::filesystem::path::value_type is not char.
(since C++17)
4-5) Same as basic_ofstream(filename.c_str(), mode). Note that despite the default mode being out, the effects are identical to the effects of out|trunc as described in std::filebuf::open
6) Move constructor. First, move-constructs the base class from other (which does not affect the rdbuf() pointer), then move-constructs the std::basic_filebuf member, then calls this->set_rdbuf() to install the new basic_filebuf as the rdbuf() pointer in the base class.
7) The copy-constructor is deleted: this class is not copyable.


filename - the name of the file to be opened
           specifies stream open mode. It is bitmask type, the following constants are defined:

           Constant Explanation
           app seek to the end of stream before each write
mode - binary open in binary_mode
           in open for reading
           out open for writing
           trunc discard the contents of the stream when opening
           ate seek to the end of stream immediately after open

other - another file stream to use as source


// Run this code

  #include <fstream>
  #include <utility>
  #include <string>
  int main()
      std::ofstream f0;
      std::ofstream f1("test.bin", std::ios::binary);
      std::string name = "example.txt";
      std::ofstream f2(name);
      std::ofstream f3(std::move(f1));

See also

              opens a file and associates it with the stream
open (public member function)
              opens a file and configures it as the associated character sequence
open (public member function of std::basic_filebuf<CharT,Traits>)
              replaces the rdbuf without clearing its error state
set_rdbuf (protected member function)
              constructs the object
constructor (public member function of std::basic_ostream<CharT,Traits>)