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 起) |
按照格式字符串
fmt
格式化
args
,并附加
'
\n
'
(这意味着每个输出以换行符结尾),然后将结果插入到
os
流中。
如果对于
Args
中的任意
Ti
,
std::
formatter
<
Ti,
char
>
不满足
BasicFormatter
要求(根据
std::
make_format_args
的要求),则行为未定义。
目录 |
参数
| os | - | 用于插入数据的输出流 | ||||||||||||||||||||||||||||||||||||||||||||||
| fmt | - |
每个替换字段具有以下格式:
1)
不带格式说明的替换字段
2)
带格式说明的替换字段
|
||||||||||||||||||||||||||||||||||||||||||||||
| args... | - | 要格式化的参数 | ||||||||||||||||||||||||||||||||||||||||||||||
异常
- 分配失败时抛出 std::bad_alloc 。
- 传播任何由 格式化器 抛出的异常(例如 std::format_error ),无论 os. exceptions ( ) 的值如何,且不会在 os 的错误状态中设置 ios_base::badbit 。
- 可能抛出由 os. setstate ( ios_base :: badbit ) 引发的 ios_base::failure ,该调用在向 os 插入数据失败时执行。
注释
虽然重载 ( 2 ) 是在 C++26 中添加的,但所有已知实现都在 C++23 模式下使其可用。
| 功能测试 宏 | 值 | 标准 | 功能特性 |
|---|---|---|---|
__cpp_lib_print
|
202207L
|
(C++23) | 格式化输出 |
__cpp_lib_format
|
202207L
|
(C++23) | 暴露 std::basic_format_string |
示例
|
本节内容不完整
原因:缺少示例 |
缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的C++标准。
| DR | 适用范围 | 发布时的行为 | 正确行为 |
|---|---|---|---|
| LWG 4088 | C++23 | ( 1 ) 在格式化参数时忽略了 os 中设置的区域设置 | 应使用该区域设置 |
参见
|
(C++23)
|
输出参数的
格式化
表示
(函数模板) |
|
(C++23)
|
与
std::print
相同,但每次输出后附加换行符
(函数模板) |
|
(C++20)
|
将参数的格式化表示存储到新字符串中
(函数模板) |