template <class ParseContext>
constexpr typename ParseContext::iterator
parse(ParseContext& ctx);
概要
書式文字列の範囲[ctx.begin(), ctx.end())
を解析する。
効果
- デフォルトの
formatter
の場合、std::format()
関数ページに記載されている「標準のオプション書式」を解析する std::pair
とstd::tuple
に対するformatter
の特殊化の場合、std::format()
関数ページに記載されている「pair、tupleの書式」を解析する- このとき、書式によって以下を設定する
- 全体の囲み文字を、
set_brackets()
メンバ関数で設定する - 要素の区切り文字を、
set_separator()
メンバ関数で設定する - 各要素の
formatter
をe
として、e.set_debug_format()
が有効な式であれば、それを呼び出してデバッグ書式を有効にする
- 全体の囲み文字を、
- このとき、書式によって以下を設定する
-
コンテナアダプタに対する特殊化の場合、メンバとして以下を持っているとして、
formatter<Container, charT> underlying_;
- 以下と等価:
return underlying_.parse(ctx);
戻り値
ctx
のうち、解析がおわった位置を指すイテレータを返す。
備考
- pair / tupleが文字・文字列を要素とする場合、デバッグ書式は常に有効となり、無効にする方法はない
バージョン
言語
- C++20
処理系
- Clang: ??
- GCC: 13 ✅
- Visual C++: ??