Spec-Zone.ru › C++

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

range-default-formatter<std::range_format::sequence>
(C++23)
утилита форматирования диапазонов в виде последовательности
(специализация шаблона класса)
range-default-formatter<std::range_format::map>
(C++23)
утилита форматирования диапазонов в виде отображения
(специализация шаблона класса)
range-default-formatter<std::range_format::set>
(C++23)
утилита форматирования диапазонов в виде множества
(специализация шаблона класса)
range-default-formatter<std::range_format::string>range-default-formatter<std::range_format::debug_string>
(C++23)
утилита форматирования диапазонов в виде строки или строки с экранированием
(специализация шаблона класса)

Пример

См. также

formatter
(C++20)
задаёт правила форматирования для заданного типа
(шаблон класса)
range_formatter
(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

Spec-Zone.ru

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