table of contents
std::basic_format_arg::handle(3) | C++ Standard Libary | std::basic_format_arg::handle(3) |
NAME¶
std::basic_format_arg::handle - std::basic_format_arg::handle
Synopsis¶
Defined in header <format>
template< class Context > (since C++20)
class basic_format_arg<Context>::handle;
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).
Member functions¶
format formats the referenced object with the given contexts
(C++20) (public member function)
std::basic_format_arg<Context>::handle::format
void format( std::basic_format_parse_context<Context::char_type>&
(since
parse_ctx, C++20)
Context& format_ctx ) const;
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> or
TD
otherwise, and
* 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 is only used within formatting functions.
See also¶
basic_format_arg class template that provides access to a
formatting argument for
(C++20) user-defined formatters
(class template)
make_format_args creates a type-erased object referencing all formatting
arguments,
make_wformat_args convertible to format_args
(C++20) (function template)
(C++20)
2024.06.10 | http://cppreference.com |