Skip to content

Latest commit

 

History

History
95 lines (74 loc) · 3.07 KB

File metadata and controls

95 lines (74 loc) · 3.07 KB

basic_format_context

  • format[meta header]
  • class template[meta id-type]
  • std[meta namespace]
  • cpp20[meta cpp]
namespace std {
  template<class Out, class charT>
  class basic_format_context; // (1)

  using format_context = basic_format_context<unspecified, char>; // (2)
  using wformat_context = basic_format_context<unspecified, wchar_t>; // (3)
}
  • unspecified[italic]

概要

実際に渡されたフォーマット引数を含む、フォーマット実行中の状態を保持するクラス。

  • (1): テンプレートの定義
  • (2): マルチバイト文字列版の別名 (出力イテレータの型は未規定)
  • (3): ワイド文字列版の別名 (出力イテレータの型は未規定)

テンプレートパラメータ制約

  • OutOutputIterator<const charT&>であること

メンバ関数

名前 説明 対応バージョン
arg フォーマット引数を取得する C++20
out 出力イテレータを取得する C++20
advance_to 出力イテレータを指定したイテレータに設定する C++20
locale ロケールを取得する C++20

メンバ型

名前 説明 対応バージョン
iterator 出力イテレータ(Outと等しい) (type-alias) C++20
char_type 文字の型(charTと等しい) (type-alias) C++20
formatter_type Tに対応するフォーマッターの型 (alias-template) C++20

実装例

namespace std {
  template<class Out, class charT>
  class basic_format_context {
    basic_format_args<basic_format_context> args_;
    Out out_;

  public:
    using iterator = Out;
    using char_type = charT;
    template<class T> using formatter_type = formatter<T, charT>;

    basic_format_arg<basic_format_context> arg(size_t id) const
    {
      return args_.get(id);
    }

    std::locale locale();

    iterator out();
    {
      return out_;
    }

    void advance_to(iterator it)
    {
      out_ = it;
    }
  };
}
  • basic_format_arg[link /reference/format/basic_format_arg.md]
  • basic_format_args[link /reference/format/basic_format_args.md]
  • formatter[link /reference/format/formatter.md]

バージョン

言語

  • C++20

処理系

参照