名前空間
変種
操作

std::vprint_nonunicode(std::ostream)

From cppreference.com
< cpp‎ | io‎ | basic_ostream
 
 
 
 
ヘッダ<ostream>で定義
void vprint_nonunicode( std::ostream& os,
                        std::string_view fmt, std::format_args args );
(C++23から)

FormattedOutputFunction として動作します(ただし、エラー報告のいくつかの詳細については異なります)。

以下の操作を順番に実行します

  1. まず、sentry オブジェクトを構築してチェックします。
  2. 次に、自動変数 `std::std::string` `out` を、あたかも `out = std::std::vformat(os.getloc(), fmt, args)` で初期化されたかのように初期化します。
  3. 最後に、文字シーケンス `[` `out.begin()` `, ` `out.end()` `)` を `os` に挿入します。

`os` に文字を書き込んだ後、観測可能なチェックポイントを確立します。

(C++26以降)

目次

[編集] パラメータ

os - データを挿入する出力ストリーム
fmt - フォーマット文字列を表すオブジェクト。フォーマット文字列は以下で構成される:
  • 通常の文字({} を除く)は、変更されずに出力にコピーされる。
  • エスケープシーケンス {{}} は、それぞれ出力で {} に置き換えられる。
  • 置換フィールド。

各置換フィールドは以下の形式を持つ。

{ arg-id (オプション) } (1)
{ arg-id (オプション) : format-spec } (2)
1) フォーマット指定なしの置換フィールド
2) フォーマット指定ありの置換フィールド
arg-id - フォーマットに使用する args 内の引数のインデックスを指定する。省略された場合、引数は順番に使用される。

フォーマット文字列内の arg-id は、すべて存在するか、すべて省略されなければならない。手動と自動のインデックス付けを混在させることはエラーである。

format-spec - 対応する引数に対する std::formatter 特殊化によって定義されるフォーマット指定。} で開始することはできない。

(C++23から)
(C++26以降)
  • その他のフォーマット可能な型の場合、フォーマット指定はユーザー定義の formatter 特殊化によって決定される。
args - フォーマットする引数

[編集] 例外

  • アロケーションに失敗した場合、std::bad_alloc
  • os.exceptions() の値に関係なく、また os のエラー状態に ios_base::badbit を設定することなく、いずれかの formatter によってスローされた例外(例: std::format_error)を伝播します。
  • os への挿入が失敗した場合に呼び出される os.setstate(ios_base::badbit) によって引き起こされる ios_base::failure をスローする可能性があります。

[編集] 注記

機能テストマクロ 規格 機能
__cpp_lib_print 202207L (C++23) 書式付き出力
__cpp_lib_format 202207L (C++23) std::basic_format_string の公開

[編集]

[編集] 関連項目

型消去された引数表現を使用して、Unicode対応の出力を行う
(function) [編集]
引数の書式化された表現を出力する
(関数テンプレート) [編集]
文字データを挿入する、または右辺値ストリームに挿入する
(function template) [編集]
引数の型消去された表現を用いて、stdoutまたはファイルストリームに出力する
(関数) [編集]
(C++20)
引数のフォーマット済み表現を新しい文字列に格納する
(関数テンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)