std::range-default-formatter<std::range_format::map>

From cppreference.com
< cpp‎ | utility‎ | format‎ | ranges formatter
Defined in header <format>
template < ranges::input_range R, class CharT >
struct /*range-default-formatter*/ <range_format:: map, R, CharT> ;
(since C++23)
(exposition only*)

The class template /*range-default-formatter*/ for range types is specialized for formatting range as a map of keys to values if std::format_kind<R> is std::range_format::map

Member types

Member Definition
maybe-const-map (private) fmt-maybe-const <R, CharT>
(exposition-only member type*
element-type (private) std::remove_cvref_t < ranges::range_reference_t < maybe-const-map >>
(exposition-only member type*

Data members

Member Definition
underlying_ (private) the underlying formatter of type std::range_formatter< element-type , CharT>
(exposition-only member object*

Member functions

(constructor)
constructs a range-default-formatter
(public member function)
parse
parses the format specifier as specified by range-format-spec
(public member function)
format
writes the range formatted output as specified by range-format-spec
(public member function)

std::range-default-formatter<std::range_format::map>:: range-default-formatter

constexpr /*range-default-formatter*/();

Equivalent to:
underlying_.set_brackets (STATICALLY_WIDEN<CharT> ( "{" ), STATICALLY_WIDEN<CharT> ( "}" ) ) ;
underlying_.underlying ( ).set_brackets ( { }, { } ) ;
underlying_.underlying ( ).set_separator (STATICALLY_WIDEN<charT> ( ": " ) ) ;

where STATICALLY_WIDEN<CharT>("...") is "..." if CharT is char, and L"..." if CharT is wchar_t

The program is ill-formed unless:

  • element-type is a specialization of std::pair, or
  • element-type is a specialization of std::tuple and std::tuple_size_v<element-type> is 2

std::range-default-formatter<std::range_format::map>::parse

template < class ParseContext >
constexpr auto parse( ParseContext& ctx ) - > ParseContext:: iterator ;

Equivalent to: return underlying_ .format(ctx);

Returns an iterator past the end of the range-format-spec.

std::range-default-formatter<std::range_format::map>::format

template < class FormatContext >
auto format( maybe-const-map& r, FormatContext& ctx ) const - > FormatContext:: iterator ;

Equivalent to: return underlying_ .format(r, ctx);

Returns an iterator past the end of the output range.

See also

(C++20)
defines formatting rules for a given type
(class template)
(C++23)
class template that helps implementing std::formatter specializations for range types
(class template)