vprint_unicode(std::ostream)
From cppreference.com
< cpp | io | basic ostream
Defined in header <ostream>
|
||
void vprint_unicode( std::ostream& os, std::string_view fmt, std::format_args args ); |
(since C++23) | |
Behaves as FormattedOutputFunction (except that some details of error reporting differ):
- First, the function constructs and checks the sentry object.
- Then, initializes an automatic variable as if by std::string out = std::vformat(os.getloc(), fmt, args);.
- Finally, inserts the character sequence
[out.begin(), out.end())
into os, that is, if os refers to a terminal capable of displaying Unicode, writes out to this terminal using the native Unicode API. Otherwise, writes unmodified out to the os.
Parameters
os | - | output stream to insert data into | ||||||||||||||||||||||||||||||||||||||||||
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 |
Return value
(none)
Exceptions
- std::bad_alloc on allocation failure.
- Propagate any exception thrown by any formatter, e.g. std::format_error, without regard to the value of os.exceptions() and without turning on ios_base::badbit in the error state of os.
- May throw ios_base::failure caused by os.setstate(ios_base::badbit) which is called if an insertion into os fails.
Notes
If invoking the native Unicode API requires transcoding, the invalid code units are substituted with U+FFFD
REPLACEMENT CHARACTER (see "The Unicode Standard Version 14.0 - Core Specification", Chapter 3.9).
Feature-test macro | Value | Std | Comment |
---|---|---|---|
__cpp_lib_print |
202207L | (C++23) | Formatted output |
__cpp_lib_format |
202207L | (C++23) | Exposing std::basic_format_string |
Example
This section is incomplete Reason: no example |
See also
outputs character data using type-erased argument representation (function) | |
(C++23) |
outputs formatted representation of the arguments (function template) |
inserts character data or insert into rvalue stream (function template) | |
(C++23) |
prints to Unicode capable stdout or a file stream using type-erased argument representation (function) |
(C++20) |
stores formatted representation of the arguments in a new string (function template) |
External links
1. | Unicode |
2. | The Unicode Standard Version 14.0 - Core Specification |