C++ named requirements: BasicFormatter (since C++20)
BasicFormatter ist ein Typ, der Formatierungsoperationen für einen gegebenen Formatierungsargumenttyp und Zeichentyp abstrahiert. Spezialisierungen von std::formatter müssen die Anforderungen von BasicFormatter erfüllen.
Ein BasicFormatter ist ein Formatter , wenn er sowohl konstante als auch nicht-konstante Argumente formatieren kann.
Anforderungen
Ein Typ erfüllt BasicFormatter wenn er semiregulär ist, was bedeutet, dass er folgende Bedingungen erfüllt:
Und, bei den folgenden Typen und Werten sind die in der nachstehenden Tabelle gezeigten Ausdrücke gültig und haben die angegebene Semantik:
| Typ | Definition |
CharT
|
ein Zeichentyp |
Arg
|
ein Formatierungsargumenttyp |
Formatter
|
ein
Formatter
-Typ für Typen
Arg
und
CharT
|
OutputIt
|
ein LegacyOutputIterator -Typ |
ParseCtx
|
std:: basic_format_parse_context < CharT > |
FmtCtx
|
std:: basic_format_context < OutputIt, CharT > |
| Wert | Definition |
| f |
ein Wert vom Typ (möglicherweise const-qualifiziert)
Formatter
|
| g |
ein Wert vom Typ
Formatter
|
| arg |
ein Lvalue vom Typ
Arg
|
| t |
ein Wert vom Typ konvertierbar zu (möglicherweise const-qualifiziert)
Arg
|
| parse_ctx |
ein Lvalue vom Typ
ParseCtx
, das alle folgenden Bedingungen erfüllt:
|
| fmt_ctx |
ein Lvalue vom Typ
FmtCtx
|
| Ausdruck | Rückgabetyp | Semantik |
|---|---|---|
| g. parse ( parse_ctx ) |
ParseCtx::iterator
|
|
| f. format ( arg, fmt_ctx ) |
FmtCtx::iterator
|
|
- ↑ Dies ermöglicht es Formatern, aussagekräftige Fehlermeldungen auszugeben.
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 3892 | C++20 | der Wert von pc. begin ( ) war unklar, falls format-spec nicht vorhanden ist | klargestellt |