Namespaces
Variants

std:: formatter <std::filesystem::path>

From cppreference.net
Определено в заголовочном файле <filesystem>
template < class CharT >
struct formatter < std:: filesystem :: path , CharT > ;
(начиная с C++26)

Специализация шаблона std::formatter для класса std::filesystem::path позволяет пользователям преобразовывать путь в его текстовое представление с помощью функций форматирования . Данная специализация является debug-enabled .

Содержание

Спецификация формата

Синтаксис спецификаций формата path-format-spec следующий:

fill-and-align  (необязательно) width  (необязательно) ? (необязательно) g (необязательно)

fill-and-align и width имеют то же значение, что и в стандартной спецификации формата .

Опция ? используется для форматирования пути как экранированной строки .

Опция g используется для указания, что путь представлен в generic-format представлении .

Функции-члены

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 ( ) в соответствии с спецификацией формата пути .

Для преобразования кодировки имени пути:

  • Имя пути преобразуется из нативной кодировки для широких символьных строк в UTF-8 с заменой максимальных частей некорректных подпоследовательностей на U+FFFD (ЗАМЕЩАЮЩИЙ СИМВОЛ), если
  • В противном случае преобразование кодировки не выполняется, если std:: is_same_v < typename path :: value_type , CharT > истинно.
  • В противном случае преобразование кодировки определяется реализацией.

Возвращает итератор за концом выходного диапазона.

Примечания

Feature-test macro Value Std Feature
__cpp_lib_format_path 202403L (C++26) поддержка форматирования для std::filesystem::path

Пример

Смотрите также

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