最終更新日時: 2026年07月22日 16時08分23秒 (JST)
rotarymars が更新

履歴 編集

function template
<format>

# std::dynamic_format(C++26)

    namespace std {
      constexpr dynamic-format-string<char>
        dynamic_format(string_view fmt) noexcept;  // (1) C++26

      constexpr dynamic-format-string<wchar_t>
        dynamic_format(wstring_view fmt) noexcept; // (2) C++26
    }

## 概要

実行時文字列を書式文字列として使用できるようラップする。

このクラスは、`std::string`や`std::string_view`の文字列を、書式文字列として`std::format()`関数に指定するための型に変換する関数である。

## 戻り値

    return fmt;

## 例

    #include <print>
    #include <format>
    #include <string>

    int main()
    {
      std::string fmt = "{}";

      std::string s = std::format(std::dynamic_format(fmt), "Hello");
      std::println(std::dynamic_format(fmt), s);
    }

### 出力

    Hello

## バージョン

### 言語

- C++26

### 処理系

- Clang: ??
- GCC: 14 ✅
- Visual C++: ??

## 関連項目

- `std::format()`
- `dynamic-format-string`
- `std::basic_format_string`クラスのコンストラクタ

## 参照

- P2918R2 Runtime format strings II
- P3391R2 `constexpr std::format`
- P3953R3 Rename `std::runtime_format`
  - `constexpr std::format`の採用により、書式文字列がコンパイル時に評価される場合もある状況になったため、「runtime」よりも「動的に与えられる書式文字列」を示す`dynamic_format`に名前変更された