最終更新日時(UTC):
が更新

履歴 編集

function
<format>

std::range_formatter::format(C++23)

template <ranges::input_range R, class FormatContext>
  requires formattable<ranges::range_reference_t<R>, charT> &&
           same_as<remove_cvref_t<ranges::range_reference_t<R>>, T>
typename FormatContext::iterator
  format(R&& r, FormatContext& ctx) const; // (1)

概要

受け取ったRangeオブジェクトRを書式化する。

効果

  • parse()メンバ関数で解析した書式文字列の指定に基づいて、rの値を文字列に変換し、以下をctx.out()に出力する:
    • Range書式としてs (文字列として出力)が指定された場合、basic_string<charT>(from_range, r)を出力する
    • そうでなく、Range書式として?s (デバッグ文字列として出力)が指定された場合、basic_string<charT>(from_range, r)に引用符を付け、エスケープシーケンスをエスケープして出力する
    • そうでなければ、
      • 開きカッコを出力する
      • Range rの各要素eについて、
        • underlying()formattereを書式化して出力する
        • 最後の要素でなければ、区切り文字を出力する
      • 閉じカッコを出力する

戻り値

出力がおわった位置の出力イテレータを返す。

バージョン

言語

  • C++23

処理系