std::vprint_nonunicode, std::vprint_nonunicode_buffered - cppreference.com
From cppreference.com
| Defined in header |
||
|
|
(1) | (since C++23) |
|
|
(2) | (since C++23) |
|
|
(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));.
3) Equivalent to std::vprint_nonunicode_buffered(stdout, fmt, args).
Parameters
| stream | - | output file stream to write to | ||||||||||||||||||||||||||||||||||||||||||||
| fmt | - | an object that represents the format string. The format string consists of
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
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 |