std:: basic_format_parse_context
|
定義済みヘッダー
<format>
|
||
|
template
<
class
CharT
>
class basic_format_parse_context ; |
(C++20以降) | |
自動インデックス指定のための引数カウンタと、解析中の書式文字列範囲から構成される書式文字列解析状態へのアクセスを提供します。
std::basic_format_parse_context
インスタンスは、書式仕様の解析時に
Formatter
に渡されます。
std::basic_format_parse_context
の明示的特殊化または部分特殊化を宣言するプログラムは、診断なしに不適格である。
一般的な文字型に対するいくつかのtypedefが提供されています:
|
ヘッダーで定義
<format>
|
|
| 型 | 定義 |
std::format_parse_context
|
std :: basic_format_parse_context < char > |
std::wformat_parse_context
|
std :: basic_format_parse_context < wchar_t > |
メンバー型
| 型 | 定義 |
char_type
|
CharT
|
iterator
|
std:: basic_string_view < CharT > :: const_iterator |
const_iterator
|
std:: basic_string_view < CharT > :: const_iterator |
メンバー関数
|
(constructor)
|
フォーマット文字列と引数カウントから
std::basic_format_parse_context
インスタンスを構築する
(public member function) |
|
operator=
[deleted]
|
std::basic_format_parse_context
はコピー不可
(public member function) |
|
begin
|
フォーマット文字列範囲の先頭へのイテレータを返す
(public member function) |
|
end
|
フォーマット文字列範囲の終端へのイテレータを返す
(public member function) |
|
advance_to
|
開始イテレータを指定された位置まで進める
(public member function) |
|
next_arg_id
|
自動インデックスモードに入り、次の引数インデックスを返す
(public member function) |
|
check_arg_id
|
手動インデックスモードに入り、指定された引数インデックスが範囲内かどうかをチェックする
(public member function) |
|
check_dynamic_spec
(C++26)
|
指定された引数インデックスに対応するフォーマット引数の型が、指定された型テンプレート引数内にあるかどうかをチェックする
(public member function) |
|
check_dynamic_spec_integral
(C++26)
|
指定された引数インデックスに対応するフォーマット引数の型が整数型かどうかをチェックする
(public member function) |
|
check_dynamic_spec_string
(C++26)
|
指定された引数インデックスに対応するフォーマット引数の型が文字列型かどうかをチェックする
(public member function) |
std::basic_format_parse_context:: basic_format_parse_context
| (1) | ||
|
constexpr
explicit
basic_format_parse_context
(
std::
basic_string_view
<
CharT
>
fmt,
|
(until C++26) | |
|
constexpr
explicit
basic_format_parse_context ( std:: basic_string_view < CharT > fmt ) noexcept ; |
(since C++26) | |
|
basic_format_parse_context
(
const
basic_format_parse_context
&
)
=
delete
;
|
(2) | |
std::basic_format_parse_context
インスタンスを構築します。フォーマット文字列の範囲を
[
fmt.
begin
(
)
,
fmt.
end
(
)
)
に初期化し、引数の数を
num_args
(until C++26)
0
(since C++26)
に初期化します。
|
このコンストラクタを使用して初期化された
|
(since C++26) |
std::basic_format_parse_context
はコピーできません。
std::basic_format_parse_context:: begin
|
constexpr
const_iterator begin
(
)
const
noexcept
;
|
||
フォーマット文字列範囲の先頭を指すイテレータを返します。
std::basic_format_parse_context:: end
|
constexpr
const_iterator end
(
)
const
noexcept
;
|
||
フォーマット文字列範囲の終端を指すイテレータを返します。
std::basic_format_parse_context:: advance_to
|
constexpr
void
advance_to
(
const_iterator it
)
;
|
||
フォーマット文字列範囲の先頭を
it
に設定します。
advance_to()
の呼び出し後、
begin()
の呼び出しは
it
のコピーを返します。
end ( ) が it から 到達可能 でない場合、動作は未定義です。
std::basic_format_parse_context:: next_arg_id
|
constexpr
std::
size_t
next_arg_id
(
)
;
|
||
自動引数インデックスモードに入り、0から始まる次の引数インデックスを返します。
* this が既に手動引数インデックスモードに入っている場合、 std::format_error をスローします。
次の引数インデックスがコンストラクタで提供された num_args 以上の場合、この呼び出しはコア定数式ではありません。
std::basic_format_parse_context:: check_arg_id
|
constexpr
void
check_arg_id
(
std::
size_t
id
)
;
|
||
手動引数インデックスモードに入ります。
* this が既に自動引数インデックスモードに入っている場合、 std::format_error をスローします。
id がコンストラクタで提供された num_args 以上の場合、この呼び出しはコア定数式ではありません。
std::basic_format_parse_context:: check_dynamic_spec
|
template
<
class
...
Ts
>
constexpr void check_dynamic_spec ( std:: size_t id ) noexcept ; |
(C++26以降) | |
id がコンストラクタで指定された num_args 以上であるか、対応するフォーマット引数の型( std::basic_format_arg への変換後)が Ts... 内のいずれかの型でない場合、この呼び出しはコア定数式ではありません。 check_dynamic_spec の呼び出しは実行時には効果を持ちません。
sizeof... ( Ts ) >= 1 であり、 Ts... 内の型が一意であり、各型が bool 、 char_type 、 int 、 unsigned int 、 long long int 、 unsigned long long int 、 float 、 double 、 long double 、 const char_type * 、 std:: basic_string_view < char_type > 、または const void * のいずれかでない限り、プログラムは不適格です。
std::basic_format_parse_context:: check_dynamic_spec_integral
|
constexpr
void
check_dynamic_spec_integral
(
std::
size_t
id
)
noexcept
;
|
(C++26以降) | |
check_dynamic_spec < int , unsigned int , long long int , unsigned long long int > ( id ) の呼び出しと等価です。 check_dynamic_spec_integral の呼び出しは実行時には効果を持ちません。
std::basic_format_parse_context:: check_dynamic_spec_string
|
constexpr
void
check_dynamic_spec_string
(
std::
size_t
id
)
noexcept
;
|
(C++26以降) | |
check_dynamic_spec < const char_type * , std:: basic_string_view < char_type >> ( id ) を呼び出すことと等価です。 check_dynamic_spec_string の呼び出しは実行時には効果を持ちません。
例
|
このセクションは不完全です
理由: 例がありません |
欠陥報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 3825 | C++20 |
check_arg_id
はコンパイル時引数
id チェックを持つが、
next_arg_id
は持っていなかった
|
追加された |
| LWG 3975 | C++20 |
basic_format_parse_context
のユーザー特殊化が許可されていた
|
許可されなくなった |