Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
 
 
std::formatter<Bereich>
Spezialisierungen von range-default-formatter
range-default-formatter<std::range_format::string>
range-default-formatter<std::range_format::debug_string>
 
Definiert in Header <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>;
(seit C++23)
(nur Exposition*)

Die Klassenvorlage /*range-default-formatter*/ für Range-Typen wird für die Formatierung von Ranges als String oder als escapter String spezialisiert, wenn std::format_kind<R> entweder std::range_format::string oder std::range_format::debug_string ist.

Inhalt

[bearbeiten] Datenelemente

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

[bearbeiten] Member-Funktionen

(Konstruktor)
(implizit deklariert)
konstruiert einen range-default-formatter
(öffentliche Memberfunktion)
parse
parst den Format-Spezifizierer gemäß std-format-spec
(öffentliche Memberfunktion)
format
schreibt die formatierte Ausgabe gemäß std-format-spec
(öffentliche Memberfunktion)

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;

Äquivalent zu

auto i = underlying_.parse(ctx);
if constexpr (K == std::range_format::debug_string)
    underlying_.set_debug_format();
return i;

Gibt einen Iterator nach dem Ende des std-format-spec zurück.

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

template< class FormatContext >
auto format( /* siehe unten */& r, FormatContext& ctx ) const -> FormatContext::iterator;

Wenn ranges::input_range<const R> true ist, ist der Typ von r const R&. Andernfalls ist der Typ R&.

Sei s ein std::basic_string<CharT>, als ob durch Konstruktion von s mit std::basic_string<CharT>(std::from_range, r), sodass ranges::equal(s, r) true ist.

Entspricht return underlying_.format(s, 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]