std::basic_format_arg - cppreference.com (original) (raw)

| | | | | ---------------------------------------------------- | | ------------- | | template< class Context > class basic_format_arg; | | (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 contains a std::variant of the following types:

Contents

[edit] Member classes

| | type-erased wrapper that allows formatting an object of user-defined type (public member class) | | -------------------------------------------------------------------------------------------------- |

[edit] Member functions

| | constructs a std::basic_format_arg (public member function) | | ------------------------------------------------------------------------------------ | | | checks if the current object holds a formatting argument (public member function) | | | visit the contained formatting argument (public member function) |

[edit] Non-member functions

(C++20) (deprecated in C++26) argument visitation interface for user-defined formatters (function template) [edit]

std::basic_format_arg::basic_format_arg

| basic_format_arg() noexcept; | | (since C++20) | | ------------------------------ | | ------------- |

Default constructor. Constructs a basic_format_arg that does not hold a formatting argument. The contained 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; | | (since C++20) | | ---------------------------------------- | | ------------- |

Checks whether *this holds a formatting argument.

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

std::basic_format_arg::visit

template< class Visitor >decltype(auto) visit( this basic_format_arg arg, Visitor&& vis ); (1) (since C++26)
template< class R, class Visitor >R visit( this basic_format_arg arg, Visitor&& vis ); (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.

[edit] Notes

Feature-test macro Value Std Feature
__cpp_lib_format 202306L (C++26) Member visit

[edit] Example

[edit] See also