std::basic_format_arg<Context>::handle
Defined in header <format>
|
||
template
<
class Context >
class basic_format_arg<Context> :: handle ; |
(since C++20) | |
A type-erased wrapper that allows formatting an object of a user-defined type.
handle
objects are typically created by std::make_format_args and accessed through std::visit_format_arg
or the visit
member functions of std::basic_format_arg
(since C++26)
Data members
A typical implementation of handle
is TriviallyCopyable
- a const void* pointer to the object to be formatted, and
- a
void
(
*
)
(
std::basic_format_parse_context
<Context::
char_type
>
&, Context&, const
void
*
)
function pointer to the function performing needed operations in the
format
Member functions
format (C++20) |
formats the referenced object with the given contexts (public member function) |
std::basic_format_arg<Context>::handle::format
void format(
std::basic_format_parse_context
<Context::
char_type
>
& parse_ctx,
Context& format_ctx ) const ; |
(since C++20) | |
Let
T
be the type of the formatting argument,-
TD
be std::remove_const_t<T> -
TQ
be const TD if const TD satisfies __formattable_with <Context> orTD
ref
be a reference to the formatting argument.
Equivalent to:
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)
)
;
Notes
A handle
has reference semantics for the formatted argument and does not extend its lifetime. It is the programmer's responsibility to ensure that the argument outlives the handle
. Usually, a handle
See also
(C++20)
|
class template that provides access to a formatting argument for user-defined formatters (class template) |
(C++20)(C++20)
|
creates a type-erased object referencing all formatting arguments, convertible to format_args (function template) |