std:: vprint_unicode (std::ostream)
|
Definiert in Header
<ostream>
|
||
|
void
vprint_unicode
(
std::
ostream
&
os,
std:: string_view fmt, std:: format_args args ) ; |
(seit C++23) | |
Formatiert args gemäß der Formatzeichenkette fmt und schreibt das Ergebnis in den Ausgabestrom os . Verhält sich wie eine FormattedOutputFunction von os , mit der Ausnahme, dass einige Details der Fehlerberichterstattung abweichen .
Führt die folgenden Operationen in der angegebenen Reihenfolge aus:
- Zuerst konstruiert und prüft die Funktion das sentry -Objekt.
- Initialisiert eine automatische Variable wie durch std:: string out = std:: vformat ( os. getloc ( ) , fmt, args ) ; .
- Schreibt out nach os :
-
- Falls os auf ein Terminal verweist, das Unicode nur über eine native Unicode-API anzeigen kann, leert es os und schreibt out unter Verwendung der nativen Unicode-API auf das Terminal.
-
Andernfalls fügt es die Zeichenfolge
[out. begin ( ),out. end ( ))in os ein.
Wenn das Schreiben in das Terminal oder das Einfügen in os fehlschlägt, ruft es os. setstate ( std:: ios_base :: badbit ) auf.
|
Nachdem Zeichen in os geschrieben wurden, wird ein beobachtbarer Kontrollpunkt etabliert. |
(since C++26) |
Wenn out ungültige Unicode- Codeeinheiten enthält, wenn die native Unicode-API verwendet wird, ist das Verhalten undefiniert.
Inhaltsverzeichnis |
Parameter
| os | - | Ausgabestrom, in den Daten eingefügt werden | ||||||||||||||||||||||||||||||||||||||||||||||
| fmt | - |
Jedes Ersetzungsfeld hat folgendes Format:
1)
Ersetzungsfeld ohne Formatangabe
2)
Ersetzungsfeld mit Formatangabe
|
||||||||||||||||||||||||||||||||||||||||||||||
| args | - | zu formatierende Argumente | ||||||||||||||||||||||||||||||||||||||||||||||
Ausnahmen
- std::bad_alloc bei Allokationsfehlern.
- Leitet jede Ausnahme weiter, die von einem formatter geworfen wird, z.B. std::format_error , unabhängig vom Wert von os. exceptions ( ) und ohne ios_base::badbit im Fehlerzustand von os zu aktivieren.
- Kann ios_base::failure werfen, verursacht durch os. setstate ( ios_base :: badbit ) , das aufgerufen wird, wenn eine Einfügung in os fehlschlägt.
Hinweise
Wenn der Aufruf der nativen Unicode-API Transkodierung erfordert, werden ungültige Codeeinheiten durch den
U+FFFD
REPLACEMENT CHARACTER ersetzt (siehe "The Unicode Standard - Core Specification",
Kapitel 3.9
).
| Feature-Test Makro | Wert | Std | Funktion |
|---|---|---|---|
__cpp_lib_print
|
202207L
|
(C++23) | Formatierte Ausgabe |
__cpp_lib_format
|
202207L
|
(C++23) | Verfügbarmachen von std::basic_format_string |
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein 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 4044 | C++23 |
die native Unicode-API wurde immer verwendet, wenn
das Terminal, auf das os verweist, Unicode anzeigen kann |
nur verwendet, wenn das Terminal nur
die native Unicode-API zur Unicode-Anzeige nutzen kann |
Siehe auch
|
(C++23)
|
gibt Zeichendaten unter Verwendung
typlöschter
Argumentdarstellung aus
(Funktion) |
|
(C++23)
|
gibt
formatierte
Darstellung der Argumente aus
(Funktionsschablone) |
|
fügt Zeichendaten ein oder fügt in Rvalue-Stream ein
(Funktionsschablone) |
|
|
druckt zu Unicode-fähigem
stdout
oder einem Dateistream unter Verwendung
typlöschter
Argumentdarstellung
(Funktion) |
|
|
(C++20)
|
speichert formatierte Darstellung der Argumente in einem neuen String
(Funktionsschablone) |
Externe Links
| 1. | Unicode — Wikipedia |
| 2. | The Unicode Standard Version 14.0 — Core Specification |