Namespaces
Variants

std:: vformat_to

From cppreference.net
Definiert im Header <format>
template < class OutputIt >
OutputIt vformat_to ( OutputIt out, std:: string_view fmt, std:: format_args args ) ;
(1) (seit C++20)
template < class OutputIt >
OutputIt vformat_to ( OutputIt out, std:: wstring_view fmt, std:: wformat_args args ) ;
(2) (seit C++20)
template < class OutputIt >

OutputIt vformat_to ( OutputIt out, const std:: locale & loc,

std:: string_view fmt, std:: format_args args ) ;
(3) (seit C++20)
template < class OutputIt >

OutputIt vformat_to ( OutputIt out, const std:: locale & loc,

std:: wstring_view fmt, std:: wformat_args args ) ;
(4) (seit C++20)

Formatieren Sie die in args enthaltenen Argumente gemäß der Formatzeichenkette fmt und schreiben Sie das Ergebnis an den Ausgabeiterator out . Falls vorhanden, wird loc für lokalisierungsabhängige Formatierung verwendet.

Sei CharT gleich decltype ( fmt ) :: char_type ( char für Überladungen (1,3) , wchar_t für Überladungen (2,4) ).

Diese Überladungen nehmen nur dann an der Überladungsauflösung teil, wenn OutputIt das Konzept std:: output_iterator < const CharT & > erfüllt.

OutputIt muss das Konzept std:: output_iterator < const CharT & > modellieren (die semantischen Anforderungen erfüllen), und std:: formatter < Ti, CharT > muss die Formatter -Anforderungen für jedes Ti im Typ der Argumente erfüllen. Andernfalls ist das Verhalten undefiniert.

Inhaltsverzeichnis

Parameter

out - Iterator zum Ausgabepuffer
fmt - Ein Objekt, das die Formatzeichenfolge repräsentiert. Die Formatzeichenfolge besteht aus
  • gewöhnlichen Zeichen (außer { und } ), die unverändert in die Ausgabe kopiert werden,
  • Escape-Sequenzen { { und } } , die in der Ausgabe durch { bzw. } ersetzt werden, und
  • Ersetzungsfeldern.

Jedes Ersetzungsfeld hat folgendes Format:

{ arg-id (optional) } (1)
{ arg-id (optional) : format-spec } (2)
1) Ersetzungsfeld ohne Formatangabe
2) Ersetzungsfeld mit Formatangabe
arg-id - gibt den Index des Arguments in args an, dessen Wert für die Formatierung verwendet werden soll; falls weggelassen, werden die Argumente in Reihenfolge verwendet.

Die arg-id s in einer Formatzeichenfolge müssen entweder alle angegeben oder alle weggelassen werden. Das Vermischen von manueller und automatischer Indizierung ist ein Fehler.

format-spec - die Formatangabe, definiert durch die std::formatter -Spezialisierung für das entsprechende Argument. Darf nicht mit } beginnen.

(seit C++23)
(seit C++26)
  • Für andere formatierbare Typen wird die Formatangabe durch benutzerdefinierte formatter -Spezialisierungen bestimmt.
args - zu formatierende Argumente
loc - std::locale für lokalisierungsspezifische Formatierung

Rückgabewert

Iterator hinter dem Ende des Ausgabebereichs.

Ausnahmen

Wirft std::format_error falls fmt keine gültige Formatzeichenkette für die bereitgestellten Argumente ist. Leitet außerdem alle Ausnahmen weiter, die von Formatierer- oder Iterator-Operationen ausgelöst werden.

Beispiel

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
P2216R3 C++20 Typ von args ist parametrisiert auf OutputIt nicht parametrisiert

Siehe auch