Scroll to navigation

std::basic_format_arg(3) C++ Standard Libary std::basic_format_arg(3)

NAME

std::basic_format_arg - std::basic_format_arg

Synopsis


Defined in header <format>
template<class Context> (since C++20)
class basic_format_arg;


Provides access to a formatting argument.


basic_format_arg objects are typically created by std::make_format_args and accessed
through std::visit_format_arg.


A basic_format_arg object behaves as if it stores a std::variant of the following
types:


* std::monostate (only if the object was default-constructed)
* 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

Member classes


Type Definition
handle type-erased wrapper that allows formatting an object of user-defined type
(class)

Member functions


constructor constructs a std::basic_format_arg
(public member function)
operator bool checks if the current object holds a formatting argument
(public member function)

Non-member functions


visit_format_arg argument visitation interface for user-defined formatters
(C++20) (function template)

std::basic_format_arg::handle


template<class Context>
class basic_format_arg<Context>::handle;


Allows formatting an object of a user-defined type.

Member functions


format formats the referenced object with the given contexts
(public member function)

std::basic_format_arg::handle::format


void format(std::basic_format_parse_context<Context::char_type>& parse_ctx,
Context& format_ctx) const;


Let T be the type of the associated formatting argument, ref be a const T& that
refers to the formatting argument. Equivalent to:


typename Context::template formatter_type<T> f;
parse_ctx.advance_to(f.parse(parse_ctx));
format_ctx.advance_to(f.format(ref, format_ctx));

std::basic_format_arg::basic_format_arg


basic_format_arg() noexcept;


Default constructor. Constructs a basic_format_arg that does not hold a formatting
argument. The stored object has type std::monostate.


To create a basic_format_arg that holds a formatting argument, std::make_format_args
has to be used.

std::basic_format_arg::operator bool


explicit operator bool() const noexcept;


Checks whether *this holds a formatting argument.


Returns true if *this holds a formatting argument (i.e. the stored object does not
have type std::monostate), false otherwise.

Example


This section is incomplete
Reason: no example

See also

2022.07.31 http://cppreference.com