Namespaces
Variants

std:: formatter < range >

From cppreference.net
ヘッダー <format> で定義
template < ranges:: input_range R, class CharT >

requires ( std:: format_kind < R > ! = std :: range_format :: disabled ) &&
std:: formattable < ranges:: range_reference_t < R > , CharT >

struct formatter < R, CharT > ;
(C++23以降)
ヘルパーテンプレート
template < std:: range_format K, ranges:: input_range R, class CharT >
struct /*range-default-formatter*/ ;
( 説明専用* )

範囲型に対する std::formatter のテンプレート特殊化により、ユーザーは フォーマット機能 を使用して、範囲を要素のコレクションまたは文字列としてのテキスト表現に変換することができます。

この特殊化は range-default-formatter < std:: format_kind < R > , R, CharT > から派生しています。

この特殊化は、 R input_range を満たし、 std:: format_kind < R > std :: range_format :: disabled ではなく、かつ std:: formattable < ranges:: range_reference_t < R > , CharT > true である場合に有効になります。

この特殊化は、 Formatter 要件を満たす。ただし、 const R input_range をモデル化し、かつ ranges:: range_reference_t < const R > std:: formattable < CharT > をモデル化する場合に限る。常に BasicFormatter 要件は満たす。

目次

フォーマット仕様

range-format-spec の構文は以下の通りです:

range-fill-and-align  (オプション) width  (オプション) n (オプション) range-type  (オプション) range-underlying-spec  (オプション)

構文は range format specification で完全に記述されています。

std::formatter の特殊化において、 std:: format_kind < R > std :: range_format :: string または std :: range_format :: debug_string である場合、 format-spec range-format-spec ではなく std-format-spec となります(これは基盤フォーマッタとして std:: formatter < std:: basic_string < CharT > , CharT > を使用します)。

range-default-formatter の特殊化

シーケンス形式の範囲に対するフォーマットユーティリティ
(クラステンプレート特殊化)
マップ形式の範囲に対するフォーマットユーティリティ
(クラステンプレート特殊化)
セット形式の範囲に対するフォーマットユーティリティ
(クラステンプレート特殊化)
文字列またはエスケープ文字列形式の範囲に対するフォーマットユーティリティ
(クラステンプレート特殊化)

関連項目

(C++20)
指定された型の書式設定ルールを定義する
(クラステンプレート)
範囲型に対する std::formatter 特殊化の実装を支援するクラステンプレート
(クラステンプレート)