Namensräume
Varianten
Aktionen

std::basic_format_context

Von cppreference.com
< cpp‎ | utility‎ | format
 
 
 
 
Definiert in Header <format>
template< class OutputIt, class CharT >
class basic_format_context;
(1) (seit C++20)
using format_context = basic_format_context</* nicht spezifiziert */, char>;
(2) (seit C++20)
using wformat_context = basic_format_context</* nicht spezifiziert */, wchar_t>;
(3) (seit C++20)

Stellt Zugriff auf den Formatierungsstatus bereit, bestehend aus den Formatierungsargumenten und dem Ausgabekennzeichen.

2) Das nicht spezifizierte Template-Argument ist ein Ausgabekennzeichen, das an std::string anhängt, wie z. B. std::back_insert_iterator<std::string>. Implementierungen verwenden typischerweise ein Kennzeichen für einen typ-eraseden Puffer, der das Anhängen an beliebige zusammenhängende und skalierbare Container unterstützt.
3) Das nicht spezifizierte Template-Argument ist ein Ausgabekennzeichen, das an std::wstring anhängt.

Das Verhalten ist undefiniert, wenn OutputIt nicht std::output_iterator<const CharT&> modelliert.

Ein Programm, das eine explizite oder partielle Spezialisierung von std::basic_format_context deklariert, ist fehlerhaft, ohne Meldung erforderlich.

std::basic_format_context Objekte können nur von der Implementierung erstellt werden. Benutzercodes dürfen den Formatkontext nur über die format Funktion von std::formatter-Spezialisierungen ändern.

Inhalt

[bearbeiten] Member types

Typ Definition
iterator OutputIt
char_type CharT

[bearbeiten] Member alias templates

Typ Definition
formatter_type<T> std::formatter<T, CharT>

[bearbeiten] Member functions

(Konstruktor)
[gelöscht]
basic_format_context kann nicht vom Benutzercode konstruiert werden
(öffentliche Memberfunktion)
operator=
[gelöscht]
basic_format_context ist nicht zuweisbar
(öffentliche Memberfunktion)
arg
gibt das Argument am angegebenen Index zurück
(öffentliche Memberfunktion)
locale
gibt das für die gebietsabhängige Formatierung verwendete Gebiet zurück
(öffentliche Memberfunktion)
out
gibt das Kennzeichen für den Ausgabepuffer zurück
(öffentliche Memberfunktion)
advance_to
bewegt das Ausgabekennzeichen an die angegebene Position
(öffentliche Memberfunktion)

std::basic_format_context::arg

std::basic_format_arg<basic_format_context> arg( std::size_t id ) const;

Gibt ein std::basic_format_arg zurück, das das id-te Argument in args enthält, wobei args die an die Formatierungsfunktion übergebene Parameterpackung oder das std::basic_format_args-Objekt ist.

Wenn id kleiner ist als die Anzahl der Formatierungsargumente, wird ein standardmäßig konstruiertes std::basic_format_arg zurückgegeben (das ein std::monostate-Objekt enthält).

std::basic_format_context::locale

std::locale locale();

Gibt das an die Formatierungsfunktion übergebene Gebiet zurück oder ein standardmäßig konstruiertes std::locale, wenn die Formatierungsfunktion kein Gebiet erwartet.

std::basic_format_context::out

iterator out();

Gibt das Kennzeichen für den Ausgabepuffer zurück. Das Ergebnis wird aus dem gespeicherten Kennzeichen bewegt-konstruiert.

std::basic_format_context::advance_to

void advance_to( iterator it );

Bewegt it per Zuweisung zum gespeicherten Ausgabekennzeichen. Nach einem Aufruf von advance_to gibt der nächste Aufruf von out() ein Kennzeichen zurück, das den Wert hat, den it vor der Zuweisung hatte.

[bearbeiten] Example

[bearbeiten] Defect reports

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 3567 C++20 basic_format_context funktioniert nicht mit Move-only Iterator-Typen für Move-Iteratoren gemacht
LWG 3975 C++20 Benutzerspezialisierung von basic_format_context war erlaubt disallowed
LWG 4061 C++20 basic_format_context war vom Benutzercode konstruierbar und zuweisbar weder konstruierbar noch zuweisbar gemacht