std::formatter<std::filesystem::path>
Определён в заголовке <filesystem> | ||
|---|---|---|
template< class CharT > struct formatter<std::filesystem::path, CharT>; | (начиная с C++26) |
Специализация шаблона std::formatter для класса std::filesystem::path позволяет пользователям преобразовывать путь к файлу в его текстовое представление с помощью функций форматирования. Эта специализация поддерживает отладочный формат.
Спецификация формата
Синтаксис спецификаций формата path-format-spec:
fill-and-align (необязательно) width (необязательно) ?(необязательно) g(необязательно) |
fill-and-align и width имеют то же значение, что и в стандартной спецификации формата.
Опция ? используется для форматирования пути к файлу в виде строки с экранированием.
Опция g используется, чтобы указать, что путь к файлу представлен в формате generic.
Функции-члены
|
set_debug_format | включает форматирование пути к файлу в виде строки с экранированием (открытая функция-член) |
|
parse | разбирает спецификатор формата в соответствии с path-format-spec (открытая функция-член) |
|
format | записывает отформатированный результат в соответствии с path-format-spec (открытая функция-член) |
std::formatter<std::filesystem::path>::set_debug_format
constexpr void set_debug_format(); |
Позволяет текущему объекту форматировать путь к файлу в виде строки с экранированием.
std::formatter<std::filesystem::path>::parse
constexpr auto parse( std::basic_format_parse_context<CharT>& ctx )
-> std::basic_format_parse_context<CharT>::iterator;
|
Разбирает спецификаторы формата как path-format-spec и сохраняет разобранные спецификаторы в текущем объекте.
Возвращает итератор, указывающий за конец path-format-spec.
std::formatter<std::filesystem::path>::format
template< class FormatContext >
auto format( const std::filesystem::path& p, FormatContext& ctx ) const
-> FormatContext::iterator;
|
Пусть s будет p.generic<std::filesystem::path::value_type>(), если используется опция g, и p.native() в противном случае. Записывает s в ctx.out() в соответствии с path-format-spec.
При преобразовании кодировки пути к файлу:
- Путь к файлу преобразуется из собственной кодировки широких символьных строк в UTF-8, а максимальные подчасти некорректных последовательностей заменяются на
U+FFFDREPLACEMENT CHARACTER, если-
std::is_same_v<CharT, char>равноtrue, -
std::is_same_v<typename path::value_type, wchar_t>равноtrue, и - кодировка обычных литералов — UTF-8.
-
- В противном случае преобразование кодировки не выполняется, если
std::is_same_v<typename path::value_type, CharT>равноtrue. - В противном случае преобразование кодировки определяется реализацией.
Возвращает итератор, указывающий за конец выходного диапазона.
Примечания
| Макрос проверки поддержки возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_format_path | 202403L | (C++26) | поддержка форматирования для std::filesystem::path |
Пример
См. также
|
(C++20) | задаёт правила форматирования для указанного типа (шаблон класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/filesystem/path/formatter