std::formatter<range>
Определён в заголовочном файле <format> | ||
|---|---|---|
template< ranges::input_range R, class CharT >
requires (std::format_kind<R> != std::range_format::disabled) &&
std::formattable<ranges::range_reference_t<R>, CharT>
struct formatter<R, CharT>;
| (начиная с C++23) | |
| Вспомогательные шаблоны | ||
template< std::range_format K, ranges::input_range R, class CharT > struct /*range-default-formatter*/; | (только для пояснения*) |
Специализация шаблона std::formatter для типов диапазонов позволяет пользователям преобразовывать диапазон в текстовое представление в виде коллекции элементов или строки с помощью функций форматирования.
Специализация является производной от range-default-formatter<std::format_kind<R>,R,CharT>.
Эта специализация включена, если R удовлетворяет input_range, std::format_kind<R> не является std::range_format::disabled, а std::formattable<ranges::range_reference_t<R>, CharT> является true.
Эта специализация удовлетворяет требованиям Formatter, если constR моделирует input_range, а ranges::range_reference_t<constR> моделирует std::formattable<CharT>. Она всегда удовлетворяет требованиям BasicFormatter.
Спецификация формата
Синтаксис range-format-spec:
range-fill-and-align (необязательно) width (необязательно) n(необязательно) range-type (необязательно) range-underlying-spec (необязательно) |
Полное описание синтаксиса приведено в спецификации формата диапазона.
Для специализаций std::formatter, в которых std::format_kind<R> — это либо std::range_format::string, либо std::range_format::debug_string, используется std-format-spec вместо range-format-spec (в котором в качестве базового форматтера используется std::formatter<std::basic_string<CharT>,CharT>).
Специализации range-default-formatter
|
(C++23) | утилита форматирования диапазонов в виде последовательности (специализация шаблона класса) |
|
(C++23) | утилита форматирования диапазонов в виде отображения (специализация шаблона класса) |
|
(C++23) | утилита форматирования диапазонов в виде множества (специализация шаблона класса) |
|
(C++23) | утилита форматирования диапазонов в виде строки или строки с экранированием (специализация шаблона класса) |
Пример
См. также
|
(C++20) | задаёт правила форматирования для заданного типа (шаблон класса) |
|
(C++23) | шаблон класса, упрощающий реализацию специализаций std::formatter для типов диапазонов (шаблон класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/format/ranges_formatter