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以降) |
書式文字列 fmt に従って args をフォーマットし(各出力は改行で終わることを意味する)、結果をストリームに出力します。
|
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以降) |
Args
内のいずれかの
Ti
について
std::
formatter
<
Ti,
char
>
が
BasicFormatter
要件を満たさない場合(
std::make_format_args
で要求される通り)、動作は未定義です。
目次 |
パラメータ
| stream | - | 出力先のファイルストリーム | ||||||||||||||||||||||||||||||||||||||||||||||
| fmt | - |
各置換フィールドは以下の形式を持つ:
1)
フォーマット指定なしの置換フィールド
2)
フォーマット指定ありの置換フィールド
|
||||||||||||||||||||||||||||||||||||||||||||||
| args... | - | フォーマットする引数 | ||||||||||||||||||||||||||||||||||||||||||||||
例外
- std::bad_alloc メモリ確保失敗時。
- std::system_error 、ストリームへの書き込み失敗時。
- 使用された formatters によって送出された例外を伝播(例: std::format_error )。
注記
C++26でオーバーロード ( 3,4 ) が追加されていますが、既知のすべての実装ではC++23モードで利用可能になっています。
| 機能テスト マクロ | 値 | 標準 | 機能 |
|---|---|---|---|
__cpp_lib_print
|
202207L
|
(C++23) | 書式付き出力 |
202403L
|
(C++26) | バッファリングなし書式付き出力 [1] | |
__cpp_lib_format
|
202207L
|
(C++23) | std::basic_format_string の公開 |
- ↑ P3107R5はDRとして採択されているものの、 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
、ファイルストリーム、またはバッファに出力する
(関数) |