Spec-Zone.ru › C++

println(std::ostream)

Defined in header <ostream>
template< class... Args >
void println( std::ostream& os, std::format_string<Args...> fmt, Args&&... args );
(since C++23)

Форматирует args в соответствии с строкой формата fmt с добавленным '\n' (что означает, что каждый вывод завершается новой строкой) и вставляет результат в поток os.

Эквивалентно: std::print(os, "{}\n", std::format(fmt, args...));

Поведение является неопределённым, если std::formatter<Ti, char> не соответствует требованиям BasicFormatter для любого Ti в Args (как требуется std::make_format_args).

Параметры

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

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

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

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

format-spec - спецификация формата, определяемая специализацией std::formatter для соответствующего аргумента.
  • Для основных типов и стандартных типов строк спецификация формата интерпретируется как стандартная спецификация формата.
  • Для типов chrono спецификация формата интерпретируется как спецификация формата chrono.
  • Для типов range спецификация формата интерпретируется как спецификация формата range.
  • Для std::pair и std::tuple, спецификация формата интерпретируется как спецификация формата tuple.
  • Для std::thread::id и std::stacktrace_entry, см. спецификацию формата идентификатора потока и спецификацию формата записи стека вызовов.
  • Для std::basic_stacktrace, спецификатор формата не допускается.
(since C++23)
  • Для других форматируемых типов, спецификация формата определяется пользовательскими formatter специализациями.
args... - аргументы, подлежащие форматированию

Возвращаемое значение

(нет)

Исключения

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

Примечания

Макрокоманда проверки наличия функции Значение Std Функция
__cpp_lib_print 202207L (C++23) Форматированный вывод
__cpp_lib_format 202207L (C++23) Предоставление std::basic_format_string

Пример

См. также

print(std::ostream)
(C++23)
выводит форматированное представление аргументов
(шаблон функции)
println
(C++23)
то же, что и std::print за исключением того, что каждый вывод завершается дополнительной новой строкой
(шаблон функции)
format
(C++20)
сохраняет отформатированное представление аргументов в новой строке
(шаблон функции)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_ostream/println

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API