std::vprint_nonunicode, std::vprint_nonunicode_buffered
From cppreference.com
| Defined in header <print>
|
||
| void vprint_nonunicode( std::FILE* stream, std::string_view fmt, std::format_args args ); |
(1) | (since C++23) |
| void vprint_nonunicode_buffered ( std::FILE* stream, std::string_view fmt, std::format_args args ); |
(2) | (since C++23) |
| void vprint_nonunicode_buffered ( std::string_view fmt, std::format_args args ); |
(3) | (since C++23) |
Format args according to the format string fmt, and writes the result to the output stream.
1) While holding the lock on stream, writes the character representation of formatting arguments provided by args formatted according to specifications given in fmt to stream.
If stream is not a valid pointer to an output C stream, the behavior is undefined.
2) Equivalent to 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) Equivalent to std::vprint_nonunicode_buffered(stdout, fmt, args).
Parameters
| stream | - | output file stream to write to | ||||||||||||||||||||||||||||||||||||||||||||||
| fmt | - |
Each replacement field has the following format:
1) replacement field without a format specification
2) replacement field with a format specification
| ||||||||||||||||||||||||||||||||||||||||||||||
| args | - | arguments to be formatted | ||||||||||||||||||||||||||||||||||||||||||||||
Exceptions
- std::bad_alloc on allocation failure.
- std::system_error, if writing to the stream fails.
- Propagates any exception thrown by used formatters, e.g. std::format_error.
Notes
| Feature-test macro | Value | Std | Feature |
|---|---|---|---|
__cpp_lib_print |
202207L |
(C++23) | Formatted output |
202403L |
(C++26) (DR23) |
Unbuffered formatted output | |
202406L |
(C++26) (DR23) |
Enabling unbuffered formatted output for more formattable types | |
__cpp_lib_format |
202207L |
(C++23) | Exposing std::basic_format_string |
Example
| This section is incomplete Reason: no example |
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| P3107R5 | C++23 | printing operations were always buffered | provides unbuffered printing operations |
| P3235R3 | C++23 | the names of the functions added by P3107R5 were misleading |
changed the function names |
See also
| prints to Unicode capable stdout or a file stream using type-erased argument representation (function) | |
| outputs character data using type-erased argument representation (function) | |
| (C++23) |
prints to stdout or a file stream using formatted representation of the arguments (function template) |
| (C++20) |
stores formatted representation of the arguments in a new string (function template) |