On this page
std::basic_format_arg
Defined in header <format> |
||
---|---|---|
|
(since C++20) |
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
or the visit
member functions(since C++26).
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
(C++20)
|
type-erased wrapper that allows formatting an object of user-defined type (public member class) |
Member functions
(constructor)
(C++20)
|
constructs a std::basic_format_arg (public member function) |
operator bool
(C++20)
|
checks if the current object holds a formatting argument (public member function) |
visit
(C++26)
|
visit the stored formatting argument (public member function) |
Non-member functions
(C++20) (deprecated in C++26)
|
argument visitation interface for user-defined formatters (function template) |
std::basic_format_arg::basic_format_arg
|
(since C++20) |
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
|
(since C++20) |
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.
std::basic_format_arg::visit
|
(1) | (since C++26) |
|
(2) | (since C++26) |
Applies the visitor vis
to the object contained in arg
.
The visit
functions do not modify the basic_format_arg
object on which it is called because a copy of the object is used when calling vis
.
return std::visit(std::forward<Visitor>(vis), v);
, where v
is the std::variant
stored in arg
.
return std::visit<R>(std::forward<Visitor>(vis), v);
, where v
is the std::variant
stored in arg
.
Notes
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_format |
202306L | (C++26) | Member visit |
Example
See also
(C++20)(C++20)(C++20)
|
class that provides access to all formatting arguments (class template) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/format/basic_format_arg