Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
 
 
 
Definiert in Header <format>
template< ranges::input_range R, class CharT >
struct /*range-default-formatter*/<range_format::map, R, CharT>;
(seit C++23)
(nur Exposition*)

Die Klassenschablone /*range-default-formatter*/ für Bereichstypen wird für die Formatierung eines Bereichs als Map von Schlüsseln zu Werten spezialisiert, wenn std::format_kind<R> std::range_format::map ist.

Inhalt

[bearbeiten] Member types

Mitglied Definition
maybe-const-map (private) fmt-maybe-const<R, CharT>
((nur zur Veranschaulichung)*)
element-type (private) std::remove_cvref_t<ranges::range_reference_t<maybe-const-map>>
((nur zur Veranschaulichung)*)

[bearbeiten] Data members

Mitglied Definition
underlying_ (private) der zugrunde liegende Formatter vom Typ std::range_formatter<element-type, CharT>
((exposition-only member object*)

[bearbeiten] Member functions

(Konstruktor)
konstruiert einen range-default-formatter
(öffentliche Memberfunktion)
parse
analysiert den Formatierungsstring wie von range-format-spec beschrieben
(öffentliche Memberfunktion)
format
schreibt die formatierte Bereichsausgabe wie von range-format-spec beschrieben
(öffentliche Memberfunktion)

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

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

Äquivalent zu
underlying_.set_brackets(STATICALLY_WIDEN<CharT>("{"), STATICALLY_WIDEN<CharT>("}"));
underlying_.underlying().set_brackets({}, {});
underlying_.underlying().set_separator(STATICALLY_WIDEN<charT>(": "));

wobei STATICALLY_WIDEN<CharT>("...") "..." ist, wenn CharT char ist, und L"...", wenn CharT wchar_t ist.

Das Programm ist ill-formed, es sei denn,

  • element-type ist eine Spezialisierung von std::pair, oder
  • element-type ist eine Spezialisierung von std::tuple und std::tuple_size_v<element-type> ist 2.

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

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

Entspricht: return underlying_.format(ctx);.

Gibt einen Iterator hinter das Ende der Range-Formatierungspezifikation zurück.

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

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

Entspricht: return underlying_.format(r, ctx);.

Gibt einen Iterator nach dem Ende des Ausgabe-Bereichs zurück.

[bearbeiten] Siehe auch

(C++20)
definiert Formatierungsregeln für einen gegebenen Typ
(Klassentemplate) [bearbeiten]
Klassentemplate, das bei der Implementierung von std::formatter-Spezialisierungen für Range-Typen hilft
(Klassentemplate) [bearbeiten]