std::println(std::ostream)
From cppreference.com
< cpp | io | basic_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 ストリームに挿入します。
1) 次と同等: std::print(os, "{}\n", std::format(os.getloc(), fmt, args...));
2) 次と同等: std::print(os, "\n");
Args 内の任意の Ti について、std::formatter<Ti, char> が std::make_format_args によって要求される BasicFormatter 要件を満たさない場合、動作は未定義です。
目次 |
[編集] Parameters
| os | - | データを挿入する出力ストリーム | ||||||||||||||||||||||||||||||||||||||||||||||
| fmt | - |
各置換フィールドは以下の形式を持つ。
1) フォーマット指定なしの置換フィールド
2) フォーマット指定ありの置換フィールド
| ||||||||||||||||||||||||||||||||||||||||||||||
| args... | - | フォーマットする引数 | ||||||||||||||||||||||||||||||||||||||||||||||
[編集] Exceptions
- アロケーションに失敗した場合、std::bad_alloc。
- os.exceptions() の値に関係なく、また os のエラー状態に ios_base::badbit を設定することなく、いずれかの formatter によってスローされた例外(例: std::format_error)を伝播します。
- os への挿入が失敗した場合に呼び出される os.setstate(ios_base::badbit) によって引き起こされる ios_base::failure をスローする可能性があります。
[編集] Notes
オーバーロード (2) は C++26 で追加されますが、知られているすべての実装は C++23 モードで利用可能にしています。
| 機能テストマクロ | 値 | 規格 | 機能 |
|---|---|---|---|
__cpp_lib_print |
202207L |
(C++23) | 書式付き出力 |
__cpp_lib_format |
202207L |
(C++23) | std::basic_format_string の公開 |
[編集] Example
| このセクションは未完成です 理由: 例がありません |
[編集] Defect reports
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 4088 | C++23 | (1) フォーマット引数において os に設定されたロケールを無視していました。 | そのようなロケールが使用されます。 |
[編集] See also
| (C++23) |
引数の書式化された表現を出力する (関数テンプレート) |
| (C++23) |
std::printと同じだが、各出力の末尾に改行が追加される点が異なる (関数テンプレート) |
| (C++20) |
引数のフォーマット済み表現を新しい文字列に格納する (関数テンプレート) |