30 Input/output library [input.output]

30.9 File-based streams [file.streams]

30.9.1 Header <fstream> synopsis [fstream.syn]

namespace std {
  template <class charT, class traits = char_traits<charT>>
    class basic_filebuf;
  using filebuf  = basic_filebuf<char>;
  using wfilebuf = basic_filebuf<wchar_t>;

  template <class charT, class traits = char_traits<charT>>
    class basic_ifstream;
  using ifstream  = basic_ifstream<char>;
  using wifstream = basic_ifstream<wchar_t>;

  template <class charT, class traits = char_traits<charT>>
    class basic_ofstream;
  using ofstream  = basic_ofstream<char>;
  using wofstream = basic_ofstream<wchar_t>;

  template <class charT, class traits = char_traits<charT>>
    class basic_fstream;
  using fstream  = basic_fstream<char>;
  using wfstream = basic_fstream<wchar_t>;
}

Заголовок <fstream> определяет четыре шаблона классов и восемь типов, которые связывают буферы потоков с файлами и помогают читать и писать файлы.

[ Note: Шаблон класса basic_­filebuf рассматривает файл как источник или приемник байтов. В среде, в которой используется большой набор символов, файл обычно содержит многобайтовые последовательности символов, и basic_­filebuf объект преобразует эти многобайтовые последовательности в последовательности широких символов. ]end note

В этом подпункте функции-члены, принимающие аргументы, предоставляются const filesystem​::​path​::​value_­type* только в системах, где filesystem​::​path​::​value_­type ([fs.class.path]) нет char. [ Note: Эти функции включают path поддержку классов для систем с широким типом символов собственного пути, например wchar_­t. ]end note