std:: println
|
Определено в заголовке
<print>
|
||
|
template
<
class
...
Args
>
void println ( std:: format_string < Args... > fmt, Args && ... args ) ; |
(1) | (начиная с C++23) |
|
template
<
class
...
Args
>
void
println
(
std::
FILE
*
stream,
|
(2) | (начиная с C++23) |
|
void
println
(
)
;
|
(3) | (начиная с C++26) |
|
void
println
(
std::
FILE
*
stream
)
;
|
(4) | (начиная с C++26) |
Форматирует args в соответствии со строкой формата fmt с добавлением ' \n ' (что означает, что каждый вывод завершается символом новой строки), и выводит результат в поток.
|
std:: print ( stream, "{} \n " , std:: format ( fmt, std:: forward < Args > ( args ) ... ) ) ; |
(до C++26) |
|
std::
print
(
stream,
std::
runtime_format
(
std::
string
(
fmt.
get
(
)
)
+
'
\n
'
)
,
|
(начиная с C++26) |
Если
std::
formatter
<
Ti,
char
>
не соответствует требованиям
BasicFormatter
для любого
Ti
в
Args
(как требуется
std::make_format_args
), поведение не определено.
Содержание |
Параметры
| stream | - | выходной файловый поток для записи | ||||||||||||||||||||||||||||||||||||||||||||||
| fmt | - |
Каждое поле замены имеет следующий формат:
1)
поле замены без спецификации формата
2)
поле замены со спецификацией формата
|
||||||||||||||||||||||||||||||||||||||||||||||
| args... | - | аргументы для форматирования | ||||||||||||||||||||||||||||||||||||||||||||||
Исключения
- std::bad_alloc при ошибке выделения памяти.
- std::system_error , если запись в поток завершается неудачей.
- Пробрасывает любое исключение, выброшенное используемыми formatters , например std::format_error .
Примечания
Хотя перегрузки ( 3,4 ) добавлены в C++26, все известные реализации делают их доступными в режиме C++23.
| Макрос тестирования возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_print
|
202207L
|
(C++23) | Форматированный вывод |
202403L
|
(C++26) | Небуферизованный форматированный вывод [1] | |
__cpp_lib_format
|
202207L
|
(C++23) | Предоставление std::basic_format_string |
- ↑ Хотя P3107R5 принят как DR (Defect Report), std::runtime_format доступен только начиная с C++26. В результате, данное исправление не может быть применено в C++23.
Пример
#include <print> int main() { // Каждый вызов std::println завершается переводом строки std::println("Please"); // перегрузка (1) std::println("enter"); // (1) std::print("pass"); std::print("word"); std::println(); // (3); допустимо начиная с C++26; тот же эффект, что и std::print("\n"); }
Вывод:
Please enter password
Смотрите также
|
(C++23)
|
выводит в
stdout
или файловый поток с использованием
форматированного
представления аргументов
(шаблон функции) |
|
(C++23)
|
выводит
форматированное
представление аргументов с добавленным
'
\n
'
(шаблон функции) |
|
(C++20)
|
сохраняет форматированное представление аргументов в новой строке
(шаблон функции) |
|
(C++11)
|
выводит форматированные данные в
stdout
, файловый поток или буфер
(функция) |