std::println(std::ostream)
Определено в заголовочном файле <ostream> | ||
|---|---|---|
template< class... Args > void println( std::ostream& os, std::format_string<Args...> fmt, Args&&... args ); | (1) | (начиная с C++23) |
void println( std::ostream& os ); | (2) | (начиная с C++26) |
Форматирует args в соответствии со строкой формата fmt с добавленным '\n' (это означает, что каждый вывод завершается символом новой строки) и вставляет результат в поток os.
std::print(os,"{}\n",std::format(os.getloc(),fmt,args...));
std::print(os,"\n");
Поведение не определено, если std::formatter<Ti,char> не соответствует требованиям BasicFormatter для любого Ti в Args (как того требует std::make_format_args).
Параметры
| os | - | выходной поток, в который вставляются данные | ||||||||||||||||
| fmt | - | объект, представляющий строку формата. Строка формата состоит из
Каждое поле подстановки имеет следующий формат:
|
||||||||||||||||
| args... | - | аргументы для форматирования |
Исключения
-
std::bad_allocпри ошибке выделения памяти. - Распространяет любое исключение, выброшенное любым форматтером, например
std::format_error, независимо от значенияos.exceptions()и не устанавливаяios_base::badbitв состоянии ошибкиos. - Может выбросить
ios_base::failure, вызванноеos.setstate(ios_base::badbit), которое вызывается, если вставка вosзавершается неудачей.
Примечания
Хотя перегрузка (2) добавлена в C++26, все известные реализации предоставляют её в режиме C++23.
| Макрос проверки поддержки | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_print | 202207L | (C++23) | Форматированный вывод |
__cpp_lib_format | 202207L | (C++23) | Предоставление std::basic_format_string |
Пример
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были ретроактивно применены к ранее опубликованным стандартам C++.
| Отчёт об ошибке | Применён к | Опубликованное поведение | Корректное поведение |
|---|---|---|---|
| LWG 4088 | C++23 |
(1) игнорировала локаль, заданную для os, при форматировании аргументов | такая локаль используется |
См. также
|
(C++23) | выводит форматированное представление аргументов (шаблон функции) |
|
(C++23) | то же, что и std::print, за исключением того, что после каждого вывода добавляется символ новой строки (шаблон функции) |
|
(C++20) | сохраняет форматированное представление аргументов в новой строке (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/basic_ostream/println