Spec-Zone.ru › C++

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+FFFD REPLACEMENT 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

Пример

См. также

formatter
(C++20)
задаёт правила форматирования для указанного типа
(шаблон класса)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/filesystem/path/formatter

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API