std::basic_format_arg<Context>:: handle
|
Definiert im Header
<format>
|
||
|
template
<
class
Context
>
class basic_format_arg < Context > :: handle ; |
(seit C++20) | |
Ein typloser Wrapper, der die Formatierung eines Objekts eines benutzerdefinierten Typs ermöglicht.
handle
-Objekte werden typischerweise durch
std::make_format_args
erstellt und über
std::visit_format_arg
oder die
visit
-Memberfunktionen von
std::basic_format_arg
(seit C++26)
zugänglich gemacht.
Inhaltsverzeichnis |
Datenmitglieder
Eine typische Implementierung von
handle
ist
TriviallyCopyable
und speichert nur zwei nicht-statische Datenelemente:
- ein const void * Zeiger auf das zu formatierende Objekt, und
-
ein
void
(
*
)
(
std::
basic_format_parse_context
<
Context
::
char_type
>
&
, Context
&
,
const
void
*
)
Funktionszeiger auf die Funktion, die die erforderlichen Operationen in der
formatMemberfunktion durchführt (siehe unten).
Memberfunktionen
|
format
(C++20)
|
formatiert das referenzierte Objekt mit den gegebenen Kontexten
(öffentliche Elementfunktion) |
std::basic_format_arg<Context>::handle:: format
|
void
format
(
std::
basic_format_parse_context
<
Context
::
char_type
>
&
parse_ctx,
Context & format_ctx ) const ; |
(seit C++20) | |
Sei
-
Tder Typ des Formatierungsarguments, -
TDsei std:: remove_const_t < T > , -
TQsei const TD falls const TD die Bedingung __formattable_with < Context > erfüllt, andernfallsTD, und -
refsei eine Referenz auf das Formatierungsargument.
Entspricht:
typename
Context
::
template
formatter_type
<
TD
>
f
;
parse_ctx.
advance_to
(
f.
parse
(
parse_ctx
)
)
;
format_ctx.
advance_to
(
f.
format
(
const_cast
<
TQ
&
>
(
static_cast
<
const
TD
&
>
(
ref
)
)
, format_ctx
)
)
;
Hinweise
Ein
handle
hat Referenzsemantik für das formatierte Argument und verlängert nicht dessen Lebensdauer. Es liegt in der Verantwortung des Programmierers, sicherzustellen, dass das Argument den
handle
überlebt. Normalerweise wird ein
handle
nur innerhalb von Formatierungsfunktionen verwendet.
Siehe auch
|
(C++20)
|
Klassentemplate, das Zugriff auf ein Formatierungsargument für benutzerdefinierte Formatierer bereitstellt
(Klassentemplate) |
|
(C++20)
(C++20)
|
erstellt ein typlöschtes Objekt, das auf alle Formatierungsargumente verweist und in
format_args
konvertierbar ist
(Funktionstemplate) |