GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • cpprefjp - C++日本語リファレンス
  • GitHub Project

This view

  • Original page
  • New address

GeezerVison is showing cpprefjp.github.io — std::vformat - cpprefjp C++日本語リファレンス

  1. リファレンス
  2. format
  3. vformat

最終更新日時: 2026年09月16日 18時29分08秒 (JST)
rotarymars が更新

履歴 編集

function
<format>

std::vformat(C++20)

namespace std {
  string
    vformat(string_view fmt,
            format_args args);  // (1) C++20
  constexpr string
    vformat(string_view fmt,
            format_args args);  // (1) C++26

  wstring
    vformat(wstring_view fmt,
            wformat_args args); // (2) C++20
  constexpr wstring
    vformat(wstring_view fmt,
            wformat_args args); // (2) C++26

  string
    vformat(const locale& loc,
            string_view fmt,
            format_args args);  // (3) C++20

  wstring
    vformat(const locale& loc,
            wstring_view fmt,
            wformat_args args); // (4) C++20
}

概要

書式文字列fmtに従ったフォーマットでargsの文字列表現を文字列オブジェクトで返す。

  • (1): マルチバイト文字列版
  • (2): ワイド文字列版
  • (3): マルチバイト文字列版 (ロケール指定あり)
  • (4): ワイド文字列版 (ロケール指定あり)

std::format()関数のフォーマット引数を実行時文字列にしたバージョンであり、std::format()関数の内部で使用される。

std::format()のような関数を自作する場合にこの関数を使って実装すると便利であるほか、実行時文字列でフォーマット引数を構築したい場合にも利用できる。

C++26以降は、実行時文字列のフォーマット引数を使用したい場合は、std::dynamic_format()関数を使用できる。

戻り値

argsの文字列表現を保持する文字列

例外

フォーマット実行時に失敗した場合、format_errorを投げる。

例

#include <iostream>
#include <format>
#include <string>

int main() {
  std::string fmt = "0x{:x} 0b{:04b}";
  int m = 10, n = 6;
  std::string s = std::vformat(fmt, std::make_format_args(m, n));
  std::cout << s << std::endl;
}

出力

0xa 0b0110

実装例

string vformat(string_view fmt, format_args args) {
  string str;
  vformat_to(back_inserter(str), fmt, args);
  return str;
}

wstring vformat(wstring_view fmt, wformat_args args) {
  wstring str;
  vformat_to(back_inserter(str), fmt, args);
  return str;
}

string vformat(const locale& loc, string_view fmt, format_args args) {
  string str;
  vformat_to(back_inserter(str), loc, fmt, args);
  return str;
}

wstring vformat(const locale& loc, wstring_view fmt, wformat_args args) {
  wstring str;
  vformat_to(back_inserter(str), loc, fmt, args);
  return str;
}

バージョン

言語

  • C++20

処理系

  • Clang: 17
  • GCC: 13
  • Visual C++: ??

参照

  • Working Draft, Standard for Programming Language C++ [format]
  • P0645R10 Text Formatting
  • P2905R2 Runtime format strings
  • P3391R2 constexpr std::format
    • C++26から非ロケール版がconstexprに対応した
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.