最終更新日時(UTC):
が更新

履歴 編集

function
<ostream>

std::vprint_unicode(C++23)

namespace std {
  void vprint_unicode(ostream& os,
                      string_view fmt,
                      format_args args); // (1) C++23
}

概要

書式指定でUnicode出力する。

  • (1) : 指定したostreamに、書式指定でUnicode出力する

デフォルトの標準出力に出力したい場合は、<print>ヘッダのstd::vprint_unicode()関数を使用すること。

効果

  • osの書式化出力関数として振る舞うが、以下の点が異なる:
    • 出力の生成失敗は、以下で規定されるように報告される
    • vformat()関数よって送出された例外は、os.exceptions()の値に関係なく、またosのエラー状態としてios_base::badbitをオンにすることなく、伝播される。
  • sentryオブジェクトを構築した後、以下のように自動変数を初期化する:

    string out = vformat(fmt, args);
    

  • os実装定義されたUnicodeを表示できる端末を参照するストリームである場合、ネイティブのUnicode APIを使用して端末に書き出す

  • outに無効なコードユニットが含まれる場合、その動作は未定義であり,実装者はそれを診断することが推奨される
  • ネイティブのUnicode APIを使用する場合、この関数はoutを書き出す前にフラッシュする

例外

  • vformat()関数がなんらかの例外を送出する可能性がある
  • 端末かストリームへの書き込みに失敗した場合、system_errorを送出する
  • bad_allocを送出する可能性がある

備考

  • 推奨の方式:ネイティブのUnicode APIを呼び出す際に文字コード変換が必要な場合、実装はUnicode標準 (Unicode Standard Version 14.0 - Core Specification, Chapter 3.9) に従って無効なコードユニットを「U+FFFD REPLACEMENT CHARACTER」で置き換える必要がある

バージョン

言語

  • C++23

処理系

関連項目

参照