std::vprint_nonunicode, std::vprint_nonunicode_buffered
Von cppreference.com
| Definiert in Header <print> |
||
| void vprint_nonunicode( std::FILE* stream, std::string_view fmt, std::format_args args ); |
(1) | (seit C++23) |
| void vprint_nonunicode_buffered ( std::FILE* stream, std::string_view fmt, std::format_args args ); |
(2) | (seit C++23) |
| void vprint_nonunicode_buffered ( std::string_view fmt, std::format_args args ); |
(3) | (seit C++23) |
Formatiert args gemäß der Formatierungszeichenkette fmt und schreibt das Ergebnis in den Ausgabestrom.
1) Unter Sperre auf stream schreibt die Zeichenrepräsentation der Formatierungsargumente, bereitgestellt durch args, formatiert gemäß der Spezifikation in fmt, nach stream.
Wenn stream kein gültiger Zeiger auf einen C-Ausgabestrom ist, ist das Verhalten undefiniert.
2) Äquivalent zu std::string out = std::vformat(fmt, args);
std::vprint_nonunicode(stream, "{}", std::make_format_args(out));.
std::vprint_nonunicode(stream, "{}", std::make_format_args(out));.
3) Äquivalent zu std::vprint_nonunicode_buffered(stdout, fmt, args).
|
Nach dem Schreiben von Zeichen in den Ausgabestrom wird ein beobachtbarer Kontrollpunkt etabliert. |
(seit C++26) |
Inhalt |
[bearbeiten] Parameter
| stream | - | Ausgabestream, in den geschrieben werden soll | ||||||||||||||||||||||||||||||||||||||||||||||
| fmt | - |
Jedes Ersetzungsfeld hat das folgende Format:
1) Ersetzungsfeld ohne Formatangabe
2) Ersetzungsfeld mit Formatangabe
| ||||||||||||||||||||||||||||||||||||||||||||||
| args | - | zu formatierende Argumente | ||||||||||||||||||||||||||||||||||||||||||||||
[bearbeiten] Ausnahmen
- std::bad_alloc bei Zuweisungsfehler.
- std::system_error, wenn das Schreiben in den Stream fehlschlägt.
- Propagiert jede Ausnahme, die von verwendeten Formatierern ausgelöst wird, z. B. std::format_error.
[bearbeiten] Hinweise
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_print |
202207L |
(C++23) | Formatierte Ausgabe |
202403L |
(C++26) (DR23) |
Ungepufferte formatierte Ausgabe | |
202406L |
(C++26) (DR23) |
Aktivierung ungepufferter formatierter Ausgabe für mehr formatierbare Typen | |
__cpp_lib_format |
202207L |
(C++23) | Freigabe von std::basic_format_string |
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| P3107R5 | C++23 | Druckoperationen waren immer gepuffert | bieten unbuffered Druckoperationen |
| P3235R3 | C++23 | die Namen der hinzugefügten Funktionen von P3107R5 waren irreführend |
die Funktionsnamen geändert wurden |
[bearbeiten] Siehe auch
| druckt auf Unicode-fähige stdout oder einen Dateistream unter Verwendung der typ-erased Argumentdarstellung (Funktion) | |
| gibt Zeichendaten aus unter Verwendung einer typ-erased Argumentdarstellung (type-erased) (function) | |
| (C++23) |
druckt nach stdout oder einem Dateistream unter Verwendung der formatierten Darstellung der Argumente (Funktionstemplate) |
| (C++20) |
speichert die formatierte Darstellung der Argumente in einem neuen String (Funktionstemplate) |