Scroll to navigation

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