名前空間
変種
操作

std::basic_format_context

From cppreference.com
< cpp‎ | utility‎ | format
 
 
 
 
ヘッダー <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 に追記する出力イテレータです。

OutputItstd::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オブジェクトであるargsid番目の引数を保持するstd::basic_format_argを返します。

id がフォーマット引数の数より小さい場合、デフォルト構築された std::basic_format_argstd::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 はユーザーコードで構築・代入可能でした 構築も代入もできないように変更
English 日本語 中文(简体) 中文(繁體)