vprint_unicode(std::ostream)
Определено в заголовке <ostream> | ||
|---|---|---|
void vprint_unicode( std::ostream& os, std::string_view fmt, std::format_args args ); | (с C++23) |
Ведёт себя как FormattedOutputFunction (за исключением некоторых деталей обработки ошибок отличаются):
- Сначала функция создаёт и проверяет объект sentry.
- Затем инициализирует автоматическую переменную так, как если бы это было сделано с помощью
std::string out = std::vformat(os.getloc(), fmt, args);. - Наконец, вставляет последовательность символов
[out.begin(), out.end())вos, то есть, еслиosссылается на терминал, способный отображать Unicode, записываетoutв этот терминал с помощью родного API Unicode. В противном случае записывает немодифицированное значениеoutвos.
Параметры
| os | - | поток вывода, в который нужно вставить данные | ||||||||||||||
| fmt | - | объект, представляющий строку формата. Строка формата состоит из
Каждое поле замены имеет следующий формат:
|
||||||||||||||
| args | - | аргументы для форматирования |
Значение результата
(нет)
Исключение
-
std::bad_allocпри ошибке выделения памяти. - Передаёт любые исключения, брошенные любым форматировщиком formatter, например,
std::format_error, не обращая внимания на значениеos.exceptions()и не включаяios_base::badbitв состояние ошибкиos. - Может бросить исключение
ios_base::failure, вызванноеos.setstate(ios_base::badbit), которое вызывается, если вставка вosтерпит неудачу.
Примечания
Если для вызова родного API Unicode требуется транскодирование, недействительные кодовые единицы заменяются на U+FFFD ЗАМЕЩАЮЩИЙ СИМВОЛ (см. "The Unicode Standard Version 14.0 - Core Specification", Глава 3.9).
| Макро-тест на наличие функции | Значение | Std | Функция |
|---|---|---|---|
__cpp_lib_print | 202207L | (C++23) | Форматированный вывод |
__cpp_lib_format | 202207L | (C++23) | Экспонирование std::basic_format_string |
Пример
См. также
|
(C++23) | выводит символьные данные с использованием представления аргументов (функция) |
|
(C++23) | выводит форматированное представление аргументов (функция-шаблон) |
| вставляет символьные данные или вставляет в поток-ссылку на rvalue (функция-шаблон) |
|
|
(C++23) | выводит в Unicode-совместимый stdout или в поток файла, используя представление аргументов (функция) |
|
(C++20) | сохраняет отформатированное представление аргументов в новой строке (функция-шаблон) |
Внешние ссылки
| 1. | Unicode |
| 2. | The Unicode Standard Version 14.0 - Core Specification |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_ostream/vprint_unicode