Namensräume
Varianten
Aktionen

std::basic_format_arg

Von cppreference.com
< cpp‎ | utility‎ | format
 
 
 
 
Definiert in Header <format>
template< class Context >
class basic_format_arg;
(seit C++20)

Bietet Zugriff auf ein Formatierungsargument.

basic_format_arg Objekte werden typischerweise von std::make_format_args erstellt und über std::visit_format_arg oder die visit-Memberfunktionen(seit C++26) zugegriffen.

Ein basic_format_arg Objekt verhält sich so, als ob es ein std::variant der folgenden Typen speichert

  • std::monostate (nur wenn das Objekt default-konstruiert wurde)
  • bool
  • Context::char_type
  • int
  • unsigned int
  • long long int
  • unsigned long long int
  • float
  • double
  • long double
  • const Context::char_type*
  • std::basic_string_view<Context::char_type>
  • const void*
  • basic_format_arg::handle

Inhalt

[bearbeiten] Member-Klassen

(C++20)
Type-erased Wrapper, der das Formatieren eines Objekts eines benutzerdefinierten Typs ermöglicht
(public member class)

[bearbeiten] Member-Funktionen

(Konstruktor)
(C++20)
Konstruiert ein std::basic_format_arg
(öffentliche Memberfunktion)
operator bool
(C++20)
Prüft, ob das aktuelle Objekt ein Formatierungsargument enthält
(öffentliche Memberfunktion)
visit
(C++26)
Besucht das gespeicherte Formatierungsargument
(öffentliche Memberfunktion)

[bearbeiten] Nicht-Member-Funktionen

(C++20) (veraltet in C++26)
Argument-Visitationsschnittstelle für benutzerdefinierte Formatierer
(Funktionstemplate) [bearbeiten]

std::basic_format_arg::basic_format_arg

basic_format_arg() noexcept;
(seit C++20)

Default-Konstruktor. Erzeugt ein basic_format_arg, das kein Formatierungsargument enthält. Das gespeicherte Objekt hat den Typ std::monostate.

Um ein basic_format_arg zu erstellen, das ein Formatierungsargument enthält, muss std::make_format_args verwendet werden.

std::basic_format_arg::operator bool

explicit operator bool() const noexcept;
(seit C++20)

Prüft, ob *this ein Formatierungsargument enthält.

Gibt true zurück, wenn *this ein Formatierungsargument enthält (d.h. das gespeicherte Objekt hat nicht den Typ std::monostate), andernfalls false.

std::basic_format_arg::visit

template< class Visitor >
decltype(auto) visit( this basic_format_arg arg, Visitor&& vis );
(1) (seit C++26)
template< class R, class Visitor >
R visit( this basic_format_arg arg, Visitor&& vis );
(2) (seit C++26)

Wendet den Visitor vis auf das von arg enthaltene Objekt an.

Die visit-Funktionen ändern das basic_format_arg Objekt, auf dem sie aufgerufen werden, nicht, da beim Aufruf von vis eine Kopie des Objekts verwendet wird.

1) Äquivalent zu return std::visit(std::forward<Visitor>(vis), v);, wobei v der in arg gespeicherte std::variant ist.
2) Äquivalent zu return std::visit<R>(std::forward<Visitor>(vis), v);, wobei v der in arg gespeicherte std::variant ist.

[bearbeiten] Hinweise

Feature-Test-Makro Wert Std Feature
__cpp_lib_format 202306L (C++26) Member visit

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

Klasse, die Zugriff auf alle Formatierungsargumente ermöglicht
(Klassentemplate) [bearbeiten]