std:: basic_format_parse_context
|
Definiert im Header
<format>
|
||
|
template
<
class
CharT
>
class basic_format_parse_context ; |
(seit C++20) | |
Bietet Zugriff auf den Analysezustand der Formatzeichenkette, der aus dem analysierten Bereich der Formatzeichenkette und dem Argumentzähler für automatische Indizierung besteht.
Eine
std::basic_format_parse_context
Instanz wird an
Formatter
übergeben, wenn die Formatspezifikation geparst wird.
Ein Programm, das eine explizite oder partielle Spezialisierung von
std::basic_format_parse_context
deklariert, ist fehlerhaft, keine Diagnose erforderlich.
Es werden mehrere Typdefinitionen für gängige Zeichentypen bereitgestellt:
|
Definiert im Header
<format>
|
|
| Typ | Definition |
std::format_parse_context
|
std :: basic_format_parse_context < char > |
std::wformat_parse_context
|
std :: basic_format_parse_context < wchar_t > |
Mitgliedertypen
| Typ | Definition |
char_type
|
CharT
|
iterator
|
std:: basic_string_view < CharT > :: const_iterator |
const_iterator
|
std:: basic_string_view < CharT > :: const_iterator |
Memberfunktionen
|
(Konstruktor)
|
konstruiert eine
std::basic_format_parse_context
Instanz aus Formatzeichenkette und Argumentanzahl
(öffentliche Elementfunktion) |
|
operator=
[gelöscht]
|
std::basic_format_parse_context
ist nicht kopierbar
(öffentliche Elementfunktion) |
|
begin
|
gibt einen Iterator zum Anfang des Formatzeichenkettenbereichs zurück
(öffentliche Elementfunktion) |
|
end
|
gibt einen Iterator zum Ende des Formatzeichenkettenbereichs zurück
(öffentliche Elementfunktion) |
|
advance_to
|
bewegt den Beginn-Iterator zur gegebenen Position
(öffentliche Elementfunktion) |
|
next_arg_id
|
wechselt in den automatischen Indexierungsmodus und gibt den nächsten Argumentindex zurück
(öffentliche Elementfunktion) |
|
check_arg_id
|
wechselt in den manuellen Indexierungsmodus, prüft ob der gegebene Argumentindex im gültigen Bereich liegt
(öffentliche Elementfunktion) |
|
check_dynamic_spec
(C++26)
|
prüft ob der Typ des entsprechenden Formatarguments mit dem gegebenen Argumentindex in den gegebenen Typ-Template-Argumenten enthalten ist
(öffentliche Elementfunktion) |
|
check_dynamic_spec_integral
(C++26)
|
prüft ob der Typ des entsprechenden Formatarguments mit dem gegebenen Argumentindex ein integraler Typ ist
(öffentliche Elementfunktion) |
|
check_dynamic_spec_string
(C++26)
|
prüft ob der Typ des entsprechenden Formatarguments mit dem gegebenen Argumentindex ein Zeichenkettentyp ist
(öffentliche Elementfunktion) |
std::basic_format_parse_context:: basic_format_parse_context
| (1) | ||
|
constexpr
explicit
basic_format_parse_context
(
std::
basic_string_view
<
CharT
>
fmt,
|
(bis C++26) | |
|
constexpr
explicit
basic_format_parse_context ( std:: basic_string_view < CharT > fmt ) noexcept ; |
(seit C++26) | |
|
basic_format_parse_context
(
const
basic_format_parse_context
&
)
=
delete
;
|
(2) | |
std::basic_format_parse_context
-Instanz. Initialisiert den Format-String-Bereich auf
[
fmt.
begin
(
)
,
fmt.
end
(
)
)
und die Argumentanzahl auf
num_args
(bis C++26)
0
(seit C++26)
.
|
Jeder Aufruf von
|
(seit C++26) |
std::basic_format_parse_context
ist nicht kopierbar.
std::basic_format_parse_context:: begin
|
constexpr
const_iterator begin
(
)
const
noexcept
;
|
||
Gibt einen Iterator zum Anfang des Format-String-Bereichs zurück.
std::basic_format_parse_context:: end
|
constexpr
const_iterator end
(
)
const
noexcept
;
|
||
Gibt einen Iterator zum Ende des Format-String-Bereichs zurück.
std::basic_format_parse_context:: advance_to
|
constexpr
void
advance_to
(
const_iterator it
)
;
|
||
Setzt den Anfang des Format-String-Bereichs auf
it
. Nach einem Aufruf von
advance_to()
geben nachfolgende Aufrufe von
begin()
eine Kopie von
it
zurück.
Das Verhalten ist undefiniert, wenn end ( ) nicht erreichbar von it ist.
std::basic_format_parse_context:: next_arg_id
|
constexpr
std::
size_t
next_arg_id
(
)
;
|
||
Aktiviert den automatischen Argumentindexierungsmodus und gibt den nächsten Argumentindex zurück, beginnend bei 0.
Falls * this bereits in den manuellen Argumentindexierungsmodus gewechselt hat, wird std::format_error ausgelöst.
Wenn der nächste Argumentindex größer oder gleich dem im Konstruktor angegebenen num_args ist, ist der Aufruf kein Kernkonstanter Ausdruck.
std::basic_format_parse_context:: check_arg_id
|
constexpr
void
check_arg_id
(
std::
size_t
id
)
;
|
||
Aktiviert den manuellen Argumentindexierungsmodus.
Falls * this bereits den automatischen Argumentindexierungsmodus aktiviert hat, wird std::format_error ausgelöst.
Falls id größer oder gleich dem im Konstruktor bereitgestellten num_args ist, ist der Aufruf kein Kern-Konstantenausdruck.
std::basic_format_parse_context:: check_dynamic_spec
|
template
<
class
...
Ts
>
constexpr void check_dynamic_spec ( std:: size_t id ) noexcept ; |
(seit C++26) | |
Wenn id größer oder gleich dem im Konstruktor bereitgestellten num_args ist oder der Typ des entsprechenden Formatarguments (nach Konvertierung in std::basic_format_arg ) nicht einer der Typen in Ts... ist, ist der Aufruf kein Kern-Konstantenausdruck. Ein Aufruf von check_dynamic_spec hat zur Laufzeit keine Auswirkung.
Das Programm ist fehlerhaft, es sei denn sizeof... ( Ts ) >= 1 , die Typen in Ts... sind eindeutig und jeder Typ ist einer von 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 > , oder const void * .
std::basic_format_parse_context:: check_dynamic_spec_integral
|
constexpr
void
check_dynamic_spec_integral
(
std::
size_t
id
)
noexcept
;
|
(seit C++26) | |
Entspricht dem Aufruf von check_dynamic_spec < int , unsigned int , long long int , unsigned long long int > ( id ) . Ein Aufruf von check_dynamic_spec_integral hat keine Auswirkung zur Laufzeit.
std::basic_format_parse_context:: check_dynamic_spec_string
|
constexpr
void
check_dynamic_spec_string
(
std::
size_t
id
)
noexcept
;
|
(seit C++26) | |
Entspricht dem Aufruf von check_dynamic_spec < const char_type * , std:: basic_string_view < char_type >> ( id ) . Ein Aufruf von check_dynamic_spec_string hat keine Auswirkung zur Laufzeit.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 3825 | C++20 |
check_arg_id
hatte eine Compile-Time-Argument-
id Prüfung, aber
next_arg_id
hatte diese nicht
|
hinzugefügt |
| LWG 3975 | C++20 |
Benutzer-Spezialisierung von
basic_format_parse_context
war erlaubt
|
nicht erlaubt |