std::range-default-formatter<std::range_format::string>, std::range-default-formatter<std::range_format::debug_string>
From cppreference.com
< cpp | utility | format | ranges formatter
| ヘッダー <format> で定義 |
||
| template< std::range_format K, ranges::input_range R, class CharT > requires (K == std::range_format::string || K == std::range_format::debug_string) |
(C++23から) (説明用*) |
|
クラステンプレート /*range-default-formatter*/ は、範囲 (range) の型に対して、std::format_kind<R> が std::range_format::string または std::range_format::debug_string のいずれかである場合に、範囲を文字列またはエスケープされた文字列としてフォーマットするために特化されます。
目次 |
[編集] データメンバー
| メンバ | 定義 |
underlying_ (private) |
型 std::formatter<std::basic_string<CharT>, CharT> の基底フォーマッタ (説明用のメンバオブジェクト*) |
[編集] メンバ関数
| (コンストラクタ) (暗黙的に宣言) |
range-default-formatter を構築します。(public member function) |
| parse |
フォーマット指定子を std-format-spec に従って解析します。 (public member function) |
| format |
フォーマットされた出力を std-format-spec に従って書き込みます。 (public member function) |
std::range-default-formatter<std::range_format::string>::parse
std::range-default-formatter<std::range_format::debug_string>::parse
| template< class ParseContext > constexpr auto parse( ParseContext& ctx ) -> ParseContext::iterator; |
||
以下と等価です。
auto i = underlying_.parse(ctx);
if constexpr (K == std::range_format::debug_string)
underlying_.set_debug_format();
return i;
std-format-spec の終端の次のイテレータを返します。
std::range-default-formatter<std::range_format::string>::format
std::range-default-formatter<std::range_format::debug_string>::format
| template< class FormatContext > auto format( /* 以下参照 */& r, FormatContext& ctx ) const -> FormatContext::iterator; |
||
もし ranges::input_range<const R> が true ならば、r の型は const R& です。そうでなければ、型は R& です。
std::from_range を使って std::basic_string<CharT>(std::from_range, r) で構築されるかのように s を std::basic_string<CharT> とします。ここで、ranges::equal(s, r) は true です。
return underlying_.format(s, ctx); と同等です。
出力範囲の末尾以降のイテレータを返します。
[編集] 関連項目
| (C++20) |
与えられた型のフォーマット規則を定義する (クラステンプレート) |
| (C++23) |
範囲型の std::formatter 特殊化の実装を助けるクラステンプレート (クラステンプレート) |