namespace std {
void vprint_nonunicode(string_view fmt,
format_args args); // (1) C++23
void vprint_nonunicode(FILE* stream,
string_view fmt,
format_args args); // (2) C++23
}
概要
書式指定で非Unicode出力する。
- (1) : 標準出力に、書式指定で非Unicode出力する
- (2) : 指定された
FILEに、書式指定で非Unicode出力する
std::ostreamから派生したクラスオブジェクトに対して出力したい場合は、<ostream>ヘッダのstd::vprint_nonunicode()関数を使用すること。
事前条件
- (2) :
streamが有効な出力Cストリームを指していること
効果
-
(1) : 以下と等価:
vprint_unicode(stdout, fmt, args); -
(2) :
- C++23 :
vformat(fmt, args)の結果をstreamに書き出す - C++26 : ストリームのロックを保持したまま、
fmtで書式指定に従って書式化されたargsの文字表現をstreamに書き出す
- C++23 :
例外
vformat()関数がなんらかの例外を送出する可能性がある- 端末かストリームへの書き込みに失敗した場合、
system_errorを送出する bad_allocを送出する可能性がある
バージョン
言語
- C++23
処理系
- Clang: 19 ✅
- GCC: 14 ✅
- ICC: ??
- Visual C++: 2022 Update 7 ✅
関連項目
参照
- P2093R14 Formatted output
- P3107R5 Permit an efficient implementation of
std::print - P3235R3
std::printmore types faster with less memory- C++26の上記2つの提案文書では、余分な動的メモリ確保をしないよう仕様が見直された