- print[meta header]
- std[meta namespace]
- function[meta id-type]
- cpp23[meta cpp]
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
}
- FILE[link /reference/cstdio/file.md.nolink]
- format_args[link /reference/format/basic_format_args.md]
書式指定で非Unicode出力する。
- (1) : 標準出力に、書式指定で非Unicode出力する
- (2) : 指定された
FILE
に、書式指定で非Unicode出力する
std::ostream
から派生したクラスオブジェクトに対して出力したい場合は、<ostream>
ヘッダのstd::vprint_nonunicode()
関数を使用すること。
- (2) :
stream
が有効な出力Cストリームを指していること
-
(1) : 以下と等価:
vprint_unicode(stdout, fmt, args);
- stdout[link /reference/cstdio/stdout.md.nolink]
-
(2) :
- C++23 :
vformat
(fmt, args)
の結果をstream
に書き出す - C++26 : ストリームのロックを保持したまま、
fmt
で書式指定に従って書式化されたargs
の文字表現をstream
に書き出す
- C++23 :
vformat()
関数がなんらかの例外を送出する可能性がある- 端末かストリームへの書き込みに失敗した場合、
system_error
を送出する bad_alloc
を送出する可能性がある
- C++23
- Clang: 19 [mark verified]
- GCC: 14 [mark verified]
- ICC: ??
- Visual C++: 2022 Update 7 [mark verified]
- P2093R14 Formatted output
- P3107R5 Permit an efficient implementation of
std::print
- P3235R3
std::print
more types faster with less memory- C++26の上記2つの提案文書では、余分な動的メモリ確保をしないよう仕様が見直された