std::range-default-formatter<std::range_format::string>, std::range-default-formatter<std::range_format::debug_string>
Определён в заголовочном файле <format> | ||
|---|---|---|
template< std::range_format K, ranges::input_range R, class CharT >
requires (K == std::range_format::string || K == std::range_format::debug_string)
struct /*range-default-formatter*/<K, R, CharT>;
| (начиная с C++23) (только для иллюстрации*) |
Шаблон класса /*range-default-formatter*/ для типов-диапазонов специализируется для форматирования диапазона в виде строки или экранированной строки, если std::format_kind<R> является std::range_format::string или std::range_format::debug_string.
Члены данных
| Член | Определение |
|---|---|
underlying_ (закрытый) | базовый форматтер типа std::formatter<std::basic_string<CharT>,CharT> (объект-член только для иллюстрации*) |
Функции-члены
|
(конструктор)
(объявлен неявно) | создаёт range-default-formatter (открытая функция-член) |
|
parse | разбирает спецификатор формата согласно std-format-spec (открытая функция-член) |
|
format | записывает отформатированный результат согласно std-format-spec (открытая функция-член) |
std::range-default-formatter<std::range_format::string>::parse
std::range-default-formatter<std::range_format::debug_string>::parse
template< class ParseContext > constexpr auto parse( ParseContext& ctx ) -> ParseContext::iterator; |
Эквивалентно:
auto i = underlying_.parse(ctx);if constexpr (K == std::range_format::debug_string)underlying_.set_debug_format();return i;
Возвращает итератор за концом std-format-spec.
std::range-default-formatter<std::range_format::string>::format
std::range-default-formatter<std::range_format::debug_string>::format
template< class FormatContext > auto format( /* see below */& r, FormatContext& ctx ) const -> FormatContext::iterator; |
Если ranges::input_range<const R> является true, тип r — constR&. В противном случае тип — R&.
Пусть s будет std::basic_string<CharT>, как если бы s создавался с помощью std::basic_string<CharT>(std::from_range, r), так что ranges::equal(s, r) является true.
Эквивалентно return underlying_.format(s, ctx);.
Возвращает итератор за концом выходного диапазона.
См. также
|
(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/range_default_formatter_string