Namensräume
Varianten
Aktionen

std::formatter<Bereich>

Von cppreference.com
< cpp‎ | utility‎ | format
 
 
 
 
 
Definiert in Header <format>
template< ranges::input_range R, class CharT >

    requires (std::format_kind<R> != std::range_format::disabled) &&
              std::formattable<ranges::range_reference_t<R>, CharT>

struct formatter<R, CharT>;
(seit C++23)
Hilfsschablonen
template< std::range_format K, ranges::input_range R, class CharT >
struct /*range-default-formatter*/;
(nur Exposition*)

Die Template-Spezialisierung von std::formatter für Bereichstypen ermöglicht es Benutzern, einen Bereich in seine textuelle Darstellung als Sammlung von Elementen oder als Zeichenkette unter Verwendung von Formatierungsfunktionen zu konvertieren.

Die Spezialisierung leitet sich von range-default-formatter<std::format_kind<R>, R, CharT> ab.

Die Spezialisierung ist aktiviert, wenn R input_range erfüllt, std::format_kind<R> nicht std::range_format::disabled ist und std::formattable<ranges::range_reference_t<R>, CharT> true ist.

Diese Spezialisierung erfüllt die Anforderungen von Formatter, wenn const R input_range modelliert und ranges::range_reference_t<const R> std::formattable<CharT> modelliert. Sie erfüllt immer die Anforderungen von BasicFormatter.

Inhalt

[edit] Format-Spezifikation

Die Syntax von range-format-spec ist

range-fill-and-align (optional) width (optional) n(optional) range-type (optional) range-underlying-spec (optional)

Die Syntax ist vollständig in Bereichs-Format-Spezifikation beschrieben.

Für Spezialisierungen von std::formatter, bei denen std::format_kind<R> entweder std::range_format::string oder std::range_format::debug_string ist, ist die format-spec stattdessen std-format-spec (die std::formatter<std::basic_string<CharT>, CharT> als zugrundeliegender Formatter verwendet) anstelle von range-format-spec.

[edit] Spezialisierungen von range-default-formatter

Formatierungsdienstprogramm für Bereiche in Sequenzform
(Klassenvorlagenspezialisierung) [edit]
Formatierungsdienstprogramm für Bereiche in Kartenform
(Klassenvorlagenspezialisierung) [edit]
Formatierungsdienstprogramm für Bereiche in Mengenform
(Klassenvorlagenspezialisierung) [edit]
Formatierungsdienstprogramm für Bereiche in Zeichenketten- oder escaped Zeichenkettenform
(Klassenvorlagenspezialisierung) [edit]

[edit] Beispiel

[edit] 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]