Namespaces
Variants

std:: formatter < range >

From cppreference.net
Определено в заголовочном файле <format>
template < ranges:: input_range R, class CharT >

требует ( 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 требованиям, если const R моделирует input_range и ranges:: range_reference_t < const R > моделирует 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 , format-spec является std-format-spec вместо range-format-spec (который использует std:: formatter < std:: basic_string < CharT > , CharT > в качестве базового форматтера).

Специализации range-default-formatter

утилита форматирования для диапазонов в виде последовательности
(специализация шаблона класса)
утилита форматирования для диапазонов в виде отображения
(специализация шаблона класса)
утилита форматирования для диапазонов в виде множества
(специализация шаблона класса)
утилита форматирования для диапазонов в виде строки или экранированной строки
(специализация шаблона класса)

Пример

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

(C++20)
определяет правила форматирования для заданного типа
(шаблон класса)
шаблон класса, помогающий реализовывать std::formatter специализации для типов диапазонов
(шаблон класса)