basic_filebuf();
basic_filebuf(basic_filebuf&& rhs);
virtual ~basic_filebuf();
basic_filebuf& operator=(basic_filebuf&& rhs);
void swap(basic_filebuf& rhs);
template<class charT, class traits>
  void swap(basic_filebuf<charT, traits>& x, basic_filebuf<charT, traits>& y);
bool is_open() const;
basic_filebuf* open(const char* s, ios_base::openmode mode);
basic_filebuf* open(const filesystem::path::value_type* s,
                    ios_base::openmode mode);  // wide systems only; see [fstream.syn]
| ios_base flag combination | stdio equivalent | ||||||
| binary | in | out | trunc | app | noreplace | ||
| + | "w" | ||||||
| + | + | "wx" | |||||
| + | + | "w" | |||||
| + | + | + | "wx" | ||||
| + | + | "a" | |||||
| + | "a" | ||||||
| + | "r" | ||||||
| + | + | "r+" | |||||
| + | + | + | "w+" | ||||
| + | + | + | + | "w+x" | |||
| + | + | + | "a+" | ||||
| + | + | "a+" | |||||
| + | + | "wb" | |||||
| + | + | + | "wbx" | ||||
| + | + | + | "wb" | ||||
| + | + | + | + | "wbx" | |||
| + | + | + | "ab" | ||||
| + | + | "ab" | |||||
| + | + | "rb" | |||||
| + | + | + | "r+b" | ||||
| + | + | + | + | "w+b" | |||
| + | + | + | + | + | "w+bx" | ||
| + | + | + | + | "a+b" | |||
| + | + | + | "a+b" | ||||
basic_filebuf* open(const string& s, ios_base::openmode mode);
basic_filebuf* open(const filesystem::path& s, ios_base::openmode mode);
basic_filebuf* close();
native_handle_type native_handle() const noexcept;
streamsize showmanyc() override;
int_type underflow() override;
int_type uflow() override;
int_type pbackfail(int_type c = traits::eof()) override;
int_type overflow(int_type c = traits::eof()) override;
basic_streambuf* setbuf(char_type* s, streamsize n) override;
pos_type seekoff(off_type off, ios_base::seekdir way,
                 ios_base::openmode which
                   = ios_base::in | ios_base::out) override;
pos_type seekpos(pos_type sp,
                 ios_base::openmode which
                   = ios_base::in | ios_base::out) override;
| 1. | if (om & ios_base::out) != 0, then update the output sequence and write any unshift sequence; | 
| 2. | set the file position to sp as if by a call to fsetpos; | 
| 3. | if (om & ios_base::in) != 0, then update the input sequence; | 
int sync() override;
void imbue(const locale& loc) override;
basic_ifstream();
explicit basic_ifstream(const char* s,
                        ios_base::openmode mode = ios_base::in);
explicit basic_ifstream(const filesystem::path::value_type* s,
                        ios_base::openmode mode = ios_base::in);  // wide systems only; see [fstream.syn]
explicit basic_ifstream(const string& s,
                        ios_base::openmode mode = ios_base::in);
template<class T>
  explicit basic_ifstream(const T& s, ios_base::openmode mode = ios_base::in);
basic_ifstream(basic_ifstream&& rhs);
void swap(basic_ifstream& rhs);
template<class charT, class traits>
  void swap(basic_ifstream<charT, traits>& x, basic_ifstream<charT, traits>& y);
basic_filebuf<charT, traits>* rdbuf() const;
native_handle_type native_handle() const noexcept;
bool is_open() const;
void open(const char* s, ios_base::openmode mode = ios_base::in);
void open(const filesystem::path::value_type* s,
          ios_base::openmode mode = ios_base::in);  // wide systems only; see [fstream.syn]
void open(const string& s, ios_base::openmode mode = ios_base::in);
void open(const filesystem::path& s, ios_base::openmode mode = ios_base::in);
void close();
basic_ofstream();
explicit basic_ofstream(const char* s,
                        ios_base::openmode mode = ios_base::out);
explicit basic_ofstream(const filesystem::path::value_type* s,
                        ios_base::openmode mode = ios_base::out); // wide systems only; see [fstream.syn]
explicit basic_ofstream(const string& s,
                        ios_base::openmode mode = ios_base::out);
template<class T>
  explicit basic_ofstream(const T& s, ios_base::openmode mode = ios_base::out);
basic_ofstream(basic_ofstream&& rhs);
void swap(basic_ofstream& rhs);
template<class charT, class traits>
  void swap(basic_ofstream<charT, traits>& x, basic_ofstream<charT, traits>& y);
basic_filebuf<charT, traits>* rdbuf() const;
native_handle_type native_handle() const noexcept;
bool is_open() const;
void open(const char* s, ios_base::openmode mode = ios_base::out);
void open(const filesystem::path::value_type* s,
          ios_base::openmode mode = ios_base::out);             // wide systems only; see [fstream.syn]
void close();
void open(const string& s, ios_base::openmode mode = ios_base::out);
void open(const filesystem::path& s, ios_base::openmode mode = ios_base::out);
basic_fstream();
explicit basic_fstream(
  const char* s,
  ios_base::openmode mode = ios_base::in | ios_base::out);
explicit basic_fstream(
  const filesystem::path::value_type* s,
  ios_base::openmode mode = ios_base::in | ios_base::out);  // wide systems only; see [fstream.syn]
explicit basic_fstream(
  const string& s,
  ios_base::openmode mode = ios_base::in | ios_base::out);
template<class T>
  explicit basic_fstream(const T& s, ios_base::openmode mode = ios_base::in | ios_base::out);
basic_fstream(basic_fstream&& rhs);
void swap(basic_fstream& rhs);
template<class charT, class traits>
  void swap(basic_fstream<charT, traits>& x,
            basic_fstream<charT, traits>& y);
basic_filebuf<charT, traits>* rdbuf() const;
native_handle_type native_handle() const noexcept;
bool is_open() const;
void open(
  const char* s,
  ios_base::openmode mode = ios_base::in | ios_base::out);
void open(
  const filesystem::path::value_type* s,
  ios_base::openmode mode = ios_base::in | ios_base::out);  // wide systems only; see [fstream.syn]
void open(
  const string& s,
  ios_base::openmode mode = ios_base::in | ios_base::out);
void open(
  const filesystem::path& s,
  ios_base::openmode mode = ios_base::in | ios_base::out);
void close();