Namespaces
Variants

std:: vprint_nonunicode (std::ostream)

From cppreference.net
ヘッダーで定義 <ostream>
void vprint_nonunicode ( std:: ostream & os,
std:: string_view fmt, std:: format_args args ) ;
(C++23以降)

FormattedOutputFunction として振る舞う(ただし、エラー報告の一部の詳細は 異なる )。

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

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

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

(C++26以降)

目次

パラメータ

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

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

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

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

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

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

例外

  • std::bad_alloc がメモリ確保失敗時に送出される。
  • 任意の フォーマッタ が送出する例外(例: std::format_error )を、 os. exceptions ( ) の値に関わらず伝播し、 os のエラー状態における ios_base::badbit を設定しない。
  • 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対応の出力 を実行する
(関数)
引数の フォーマット済み表現 を出力する
(関数テンプレート)
文字データを挿入する、または右辺値ストリームに挿入する
(関数テンプレート)
stdout またはファイルストリームに対して 型消去された引数表現 を使用して出力する
(関数)
(C++20)
引数のフォーマット済み表現を新しい文字列に格納する
(関数テンプレート)