Namespaces
Variants

std:: println (std::ostream)

From cppreference.net
Definiert im Header <ostream>
template < class ... Args >
void println ( std:: ostream & os, std:: format_string < Args... > fmt, Args && ... args ) ;
(1) (seit C++23)
void println ( std:: ostream & os ) ;
(2) (seit C++26)

Formatiert args gemäß der Formatzeichenkette fmt mit angehängtem ' \n ' (was bedeutet, dass jede Ausgabe mit einer neuen Zeile endet), und fügt das Ergebnis in den os Stream ein.

1) Entspricht: std::print ( os, "{} \n " , std:: format ( os. getloc ( ) , fmt, args... ) ) ;
2) Entspricht: std::print ( os, " \n " ) ;

Das Verhalten ist undefiniert, falls std:: formatter < Ti, char > nicht die BasicFormatter -Anforderungen für irgendein Ti in Args erfüllt (wie von std:: make_format_args gefordert).

Inhaltsverzeichnis

Parameter

os - Ausgabestrom, in den Daten eingefügt werden
fmt - ein Objekt, das die Formatzeichenkette repräsentiert. Die Formatzeichenkette 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 zur Formatierung verwendet wird; falls ausgelassen, werden die Argumente in Reihenfolge verwendet.

Die arg-id s in einer Formatzeichenkette müssen entweder alle angegeben oder alle ausgelassen 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

Exceptions

Hinweise

Obwohl Überladung ( 2 ) in C++26 hinzugefügt wird, machen alle bekannten Implementierungen sie bereits im C++23-Modus verfügbar.

Feature-Test Makro Wert Std Feature
__cpp_lib_print 202207L (C++23) Formatierte Ausgabe
__cpp_lib_format 202207L (C++23) Verfügbarmachen von std::basic_format_string

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
LWG 4088 C++23 ( 1 ) ignorierte das in os eingebettete Locale bei der Formatierung der Argumente solches Locale wird verwendet

Siehe auch

gibt formatierte Darstellung der Argumente aus
(Funktions-Template)
(C++23)
identisch mit std::print außer dass jede Ausgabe durch zusätzliche neue Zeile beendet wird
(Funktions-Template)
(C++20)
speichert formatierte Darstellung der Argumente in einem neuen String
(Funktions-Template)