Namespaces
Variants

std:: vprint_nonunicode (std::ostream)

From cppreference.net
Определено в заголовке <ostream>
void vprint_nonunicode ( std:: ostream & os,
std:: string_view fmt, std:: format_args args ) ;
(начиная с C++23)

Ведут себя как FormattedOutputFunction (за исключением того, что некоторые детали обработки ошибок отличаются ).

Выполняет следующие операции в указанном порядке:

  1. Сначала создает и проверяет sentry объект.
  2. Затем инициализирует автоматическую переменную как если бы std:: string out = std:: vformat ( os. getloc ( ) , fmt, args ) ; .
  3. Наконец, вставляет последовательность символов [ out. begin ( ) , out. end ( ) ) в os .

После записи символов в os , устанавливает наблюдаемую точку контроля .

(since C++26)

Содержание

Параметры

os - выходной поток для вставки данных
fmt - объект, представляющий строку формата. Строка формата состоит из
  • обычных символов (кроме { и } ), которые копируются в вывод без изменений,
  • escape-последовательностей { { и } } , которые заменяются на { и } соответственно в выводе, и
  • полей замены.

Каждое поле замены имеет следующий формат:

{ arg-id (optional) } (1)
{ arg-id (optional) : format-spec } (2)
1) поле замены без спецификации формата
2) поле замены со спецификацией формата
arg-id - указывает индекс аргумента в args , значение которого должно быть использовано для форматирования; если он опущен, аргументы используются по порядку.

Все arg-id  в строке формата должны быть либо все указаны, либо все опущены. Смешивание ручной и автоматической индексации является ошибкой.

format-spec - спецификация формата, определяемая специализацией std::formatter для соответствующего аргумента. Не может начинаться с } .

(since C++23)
(since C++26)
  • Для других форматируемых типов спецификация формата определяется пользовательскими специализациями formatter .
args - аргументы для форматирования

Исключения

  • std::bad_alloc при ошибке выделения памяти.
  • Распространяет любое исключение, выброшенное любым форматтером , например std::format_error , независимо от значения os. exceptions ( ) и без установки ios_base::badbit в состоянии ошибки os .
  • Может выбросить ios_base::failure вызванный os. setstate ( ios_base :: badbit ) который вызывается если вставка в os завершается неудачей.

Примечания

Макрос тестирования возможностей Значение Стандарт Возможность
__cpp_lib_print 202207L (C++23) Форматированный вывод
__cpp_lib_format 202207L (C++23) Предоставление std::basic_format_string

Пример

Смотрите также

выполняет вывод с поддержкой Unicode с использованием type-erased представления аргументов
(функция)
выводит форматированное представление аргументов
(шаблон функции)
вставляет символьные данные или вставляет в rvalue поток
(шаблон функции)
выводит в stdout или файловый поток с использованием type-erased представления аргументов
(функция)
(C++20)
сохраняет форматированное представление аргументов в новой строке
(шаблон функции)