Skip to content

Files

53 lines (40 loc) · 2.05 KB

parse.md

File metadata and controls

53 lines (40 loc) · 2.05 KB

parse

  • format[meta header]
  • function[meta id-type]
  • std[meta namespace]
  • formatter[meta class]
  • cpp20[meta cpp]
template <class ParseContext>
constexpr typename ParseContext::iterator
  parse(ParseContext& ctx);
  • ParseContext[link /reference/format/basic_format_parse_context.md]

概要

書式文字列の範囲[ctx.begin(), ctx.end())を解析する。

効果

  • デフォルトのformatterの場合、std::format()関数ページに記載されている「標準のオプション書式」を解析する

  • std::pairstd::tupleに対するformatterの特殊化の場合、std::format()関数ページに記載されている「pair、tupleの書式」を解析する

    • このとき、書式によって以下を設定する
      • 全体の囲み文字を、set_brackets()メンバ関数で設定する
      • 要素の区切り文字を、set_separator()メンバ関数で設定する
      • 各要素のformattereとして、e.set_debug_format()が有効な式であれば、それを呼び出してデバッグ書式を有効にする
  • コンテナアダプタに対する特殊化の場合、メンバとして以下を持っているとして、

    formatter<Container, charT> underlying_;
    • 以下と等価:
    return underlying_.parse(ctx);

戻り値

ctxのうち、解析がおわった位置を指すイテレータを返す。

備考

  • pair / tupleが文字・文字列を要素とする場合、デバッグ書式は常に有効となり、無効にする方法はない

バージョン

言語

  • C++20

処理系