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