名前空間
変種
操作

std::range-default-formatter<std::range_format::string>, std::range-default-formatter<std::range_format::debug_string>

From cppreference.com
 
 
 
 
std::formatter<range>
range-default-formatter の特殊化
range-default-formatter<std::range_format::string>
range-default-formatter<std::range_format::debug_string>
 
ヘッダー <format> で定義
template< std::range_format K, ranges::input_range R, class CharT >

    requires (K == std::range_format::string || K == std::range_format::debug_string)

struct /*range-default-formatter*/<K, R, CharT>;
(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) で構築されるかのように sstd::basic_string<CharT> とします。ここで、ranges::equal(s, r)true です。

return underlying_.format(s, ctx); と同等です。

出力範囲の末尾以降のイテレータを返します。

[編集] 関連項目

(C++20)
与えられた型のフォーマット規則を定義する
(クラステンプレート) [編集]
範囲型の std::formatter 特殊化の実装を助けるクラステンプレート
(クラステンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)