std::basic_format_context
From cppreference.com
| ヘッダー <format> で定義 |
||
| template< class OutputIt, class CharT > class basic_format_context; |
(1) | (C++20以降) |
| using format_context = basic_format_context</* 不明 */, char>; |
(2) | (C++20以降) |
| using wformat_context = basic_format_context</* 不明 */, wchar_t>; |
(3) | (C++20以降) |
フォーマット引数と出力イテレータからなるフォーマット状態へのアクセスを提供します。
2) 不明なテンプレート引数は、std::string に追記する出力イテレータです。例えば std::back_insert_iterator<std::string> です。実装は通常、任意の連続的でリサイズ可能なコンテナへの追記をサポートする、型消去されたバッファ型へのイテレータを使用します。
3) 不明なテンプレート引数は、std::wstring に追記する出力イテレータです。
OutputIt が std::output_iterator<const CharT&> をモデル化しない場合、動作は未定義です。
std::basic_format_context の明示的または部分的な特殊化を宣言するプログラムは、診断なしで不正形式となります。
std::basic_format_context オブジェクトは、実装によってのみ作成できます。ユーザーコードは、std::formatter 特殊化の format 関数を通じてのみフォーマットコンテキストを変更することが許可されます。
目次 |
[編集] メンバー型
| 型 | 定義 |
iterator
|
OutputIt
|
char_type
|
CharT
|
[編集] メンバーエイリアステンプレート
| 型 | 定義 |
| formatter_type<T> | std::formatter<T, CharT> |
[編集] メンバー関数
| (コンストラクタ) [削除] |
basic_format_context はユーザーコードで構築できません(public member function) |
| operator= [削除] |
basic_format_context は代入できません(public member function) |
| arg |
指定されたインデックスの引数を返します (public member function) |
| locale |
ロケール固有のフォーマットに使用されるロケールを返します (public member function) |
| out |
出力バッファへのイテレータを返します (public member function) |
| advance_to |
出力イテレータを指定された位置に進めます (public member function) |
std::basic_format_context::arg
| std::basic_format_arg<basic_format_context> arg( std::size_t id ) const; |
||
フォーマット関数に渡されたパラメータパックまたはstd::basic_format_argsオブジェクトであるargsのid番目の引数を保持するstd::basic_format_argを返します。
id がフォーマット引数の数より小さい場合、デフォルト構築された std::basic_format_arg(std::monostate オブジェクトを保持)を返します。
std::basic_format_context::locale
| std::locale locale(); |
||
フォーマット関数に渡されたロケール、またはフォーマット関数がロケールを取らない場合はデフォルト構築された std::locale を返します。
std::basic_format_context::out
| iterator out(); |
||
出力バッファへのイテレータを返します。結果は格納されているイテレータからムーブ構築されます。
std::basic_format_context::advance_to
| void advance_to( iterator it ); |
||
格納されている出力イテレータに it をムーブ代入します。advance_to の呼び出し後、out() の次の呼び出しは、代入前の it の値を持つイテレータを返します。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 3567 | C++20 | basic_format_context はムーブ専用イテレータ型で動作しません |
ムーブイテレータに対応 |
| LWG 3975 | C++20 | basic_format_context のユーザー定義特殊化が許可されていました |
不許可になった |
| LWG 4061 | C++20 | basic_format_context はユーザーコードで構築・代入可能でした |
構築も代入もできないように変更 |