Namespaces
Variants

std:: range-default-formatter <std::range_format::string> , std:: range-default-formatter <std::range_format::debug_string>

From cppreference.net
std::formatter< range >
range-default-formatter specializations
range-default-formatter <std::range_format::string>
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 является const R & . В противном случае тип равен 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)
определяет правила форматирования для заданного типа
(шаблон класса)
шаблон класса, помогающий реализовывать std::formatter специализации для типов диапазонов
(шаблон класса)