On this page
vprint_unicode(std::ostream)
Defined in header <ostream> |
||
|---|---|---|
|
(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())intoos, that is, ifosrefers to a terminal capable of displaying Unicode, writesoutto this terminal using the native Unicode API. Otherwise, writes unmodifiedoutto theos.
Parameters
| os | - | output stream to insert data into | ||||||||||||||
| fmt | - | an object that represents the format string. The format string consists of
Each replacement field has the following format:
|
||||||||||||||
| args | - | arguments to be formatted |
Return value
(none)
Exceptions
std::bad_allocon allocation failure.- Propagate any exception thrown by any formatter, e.g.
std::format_error, without regard to the value ofos.exceptions()and without turning onios_base::badbitin the error state ofos. - May throw
ios_base::failurecaused byos.setstate(ios_base::badbit)which is called if an insertion intoosfails.
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 | Feature |
|---|---|---|---|
__cpp_lib_print |
202207L | (C++23) | Formatted output |
__cpp_lib_format |
202207L | (C++23) | Exposing std::basic_format_string |
Example
See also
|
(C++23)
|
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
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_ostream/vprint_unicode