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

履歴 編集

function
<format>

std::vformat(C++20)

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

処理系

参照