namespace std {
string vformat(string_view fmt, format_args args); // (1)
wstring vformat(wstring_view fmt, wformat_args args); // (2)
string vformat(const locale& loc, string_view fmt, format_args args); // (3)
wstring vformat(const locale& loc, wstring_view fmt, wformat_args args); // (4)
}
概要
書式文字列fmt
に従ったフォーマットでargs
の文字列表現を文字列オブジェクトで返す。
- (1): マルチバイト文字列版
- (2): ワイド文字列版
- (3): マルチバイト文字列版 (ロケール指定あり)
- (4): ワイド文字列版 (ロケール指定あり)
format
のフォーマット引数を型消去したバージョンであり、内部的に使用される。文字列をフォーマットする目的で直接利用する必要はない。
ただし、format
のような関数を自作する場合は、vformat
を使って実装すると便利である。
戻り値
args
の文字列表現を保持する文字列
例外
フォーマット実行時に失敗した場合、format_error
を投げる。
実装例
string vformat(string_view fmt, format_args args) {
string str;
vformat_to(back_inserter(str), fmt.str, args);
return str;
}
string vformat(wstring_view fmt, wformat_args args) {
wstring str;
vformat_to(back_inserter(str), fmt.str, args);
return str;
}
string vformat(const locale& loc, string_view fmt, format_args args) {
string str;
vformat_to(loc, back_inserter(str), fmt.str, args);
return str;
}
string vformat(const locale& loc, wstring_view fmt, wformat_args args) {
wstring str;
vformat_to(loc, back_inserter(str), fmt.str, args);
return str;
}
バージョン
言語
- C++20
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??