コンテンツにスキップ

C++/標準ライブラリ/format

出典: フリー教科書『ウィキブックス(Wikibooks)』

22.14 Formatting [format]

[編集]

22.14.1 Header <format> synopsis [format.syn]

[編集]

このセクションでは、<format>ヘッダーに含まれる主要なクラスと関数について概説します。

基本クラステンプレートと型エイリアス

[編集]
basic_format_context
書式設定のコンテキストを表すクラステンプレート。
using format_context = basic_format_context<unspecified, char>: char型のフォーマットコンテキスト。
using wformat_context = basic_format_context<unspecified, wchar_t>: wchar_t型のフォーマットコンテキスト。
basic_format_args
書式設定引数を格納するクラステンプレート。
using format_args = basic_format_args<format_context>: format_context用のフォーマット引数。
using wformat_args = basic_format_args<wformat_context>: wformat_context用のフォーマット引数。
basic_format_string
書式文字列を格納するクラステンプレート。
using format_string = basic_format_string<char, type_identity_t<Args>...>: char型のフォーマット文字列。
using wformat_string = basic_format_string<wchar_t, type_identity_t<Args>...>: wchar_t型のフォーマット文字列。

書式設定関数

[編集]
format
可変引数テンプレート関数で、指定されたフォーマット文字列に基づいて文字列をフォーマットします。
template<class... Args> string format(format_string<Args...> fmt, Args&&... args)
標準的なchar文字列をフォーマット。
template<class... Args> wstring format(wformat_string<Args...> fmt, Args&&... args)
ワイド文字(wchar_t)文字列をフォーマット。
ロケール指定版も存在します。
vformat
フォーマット引数を個別に渡す代わりに、format_argsを用いる関数。
string vformat(string_view fmt, format_args args)
標準的なchar文字列をフォーマット。
wstring vformat(wstring_view fmt, wformat_args args)
ワイド文字(wchar_t)文字列をフォーマット。
ロケール指定版も存在します。
format_to
出力イテレータを使用してフォーマット結果を書き込む関数。
template<class Out, class... Args> Out format_to(Out out, format_string<Args...> fmt, Args&&... args)
標準的なchar文字列をフォーマットして出力イテレータに書き込み。
template<class Out, class... Args> Out format_to(Out out, wformat_string<Args...> fmt, Args&&... args)
ワイド文字(wchar_t)文字列をフォーマットして出力イテレータに書き込み。
ロケール指定版も存在します。
vformat_to
フォーマット引数を個別に渡す代わりに、format_argsを用いる関数。
template<class Out> Out vformat_to(Out out, string_view fmt, format_args args)
標準的なchar文字列をフォーマットして出力イテレータに書き込み。
template<class Out> Out vformat_to(Out out, wstring_view fmt, wformat_args args)
ワイド文字(wchar_t)文字列をフォーマットして出力イテレータに書き込み。
ロケール指定版も存在します。
format_to_n
出力イテレータに対して指定された最大数の文字をフォーマットする関数。
template<class Out, class... Args> format_to_n_result<Out> format_to_n(Out out, iter_difference_t<Out> n, format_string<Args...> fmt, Args&&... args)
標準的なchar文字列をフォーマット。
template<class Out, class... Args> format_to_n_result<Out> format_to_n(Out out, iter_difference_t<Out> n, wformat_string<Args...> fmt, Args&&... args)
ワイド文字(wchar_t)文字列をフォーマット。
ロケール指定版も存在します。
formatted_size
フォーマットされた文字列のサイズを返す関数。
template<class... Args> size_t formatted_size(format_string<Args...> fmt, Args&&... args)
標準的なchar文字列のサイズ。
template<class... Args> size_t formatted_size(wformat_string<Args...> fmt, Args&&... args)
ワイド文字(wchar_t)文字列のサイズ。
ロケール指定版も存在します。

その他のテンプレートとコンセプト

[編集]
formatter
任意の型Tの書式設定方法を指定するテンプレート。
formattableコンセプト
Tが書式設定可能かを判断するためのコンセプト。
basic_format_parse_context
フォーマット文字列の解析コンテキスト。
using format_parse_context = basic_format_parse_context<char>
標準的なcharの解析コンテキスト。
using wformat_parse_context = basic_format_parse_context<wchar_t>
ワイド文字(wchar_t)の解析コンテキスト。

範囲の書式設定

[編集]
range_formatter
範囲(コンテナ)の書式設定を行うためのテンプレート。
range-default-formatter
範囲のデフォルトの書式設定方法を提供するテンプレート。

引数管理

[編集]
basic_format_arg
単一のフォーマット引数を格納するクラステンプレート。
format-arg-store
複数のフォーマット引数を格納するクラステンプレート。
make_format_args
フォーマット引数を生成するための関数。

例外

[編集]
format_error
フォーマット中に発生するエラーを表す例外クラス。

このヘッダーは、文字列のフォーマットを行うための強力で柔軟なツールセットを提供し、シンプルな文字列から複雑なデータ構造までを扱うことができます。