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.
Спецификация формата
Синтаксис range-format-spec:
range-fill-and-align (необязательно) ширина (необязательно) n(необязательно) тип-диапазона (необязательно) range-underlying-spec (необязательно) |
Синтаксис подробно описан в спецификации формата диапазона.
Для специализаций std::formatter где std::format_kind<R> является либо std::range_format::string или std::range_format::debug_string, format-spec является 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/w/cpp/utility/format/ranges_formatter