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

Defined in header
template< class Context > class basic_format_args; (1) (since C++20)
using format_args = basic_format_args<std::format_context>; (2) (since C++20)
using wformat_args = basic_format_args<std::wformat_context>; (3) (since C++20)

Provides access to formatting arguments.

Contents

[edit] Member functions

| | constructs a basic_format_args object (public member function) | | -------------------------------------------------------------------------- | | | returns formatting argument at the given index (public member function) |

std::basic_format_args::basic_format_args

| template< class... Args >basic_format_args( const /*format-arg-store*/<Context, Args...>& store ) noexcept; | | | | ----------------------------------------------------------------------------------------------------------------- | | |

Constructs a basic_format_args object from the result of a call to std::make_format_args or std::make_wformat_args.

[edit] Deduction guides

| template< class Context, class... Args >basic_format_args( /*format-arg-store*/<Context, Args...> ) -> basic_format_args<Context>; | | (since C++20) | | --------------------------------------------------------------------------------------------------------------------------------------------- | | ------------- |

[edit] Notes

std::basic_format_args has reference semantics. It is the programmer's responsibility to ensure that *this does not outlive store (which, in turn, should not outlive the arguments to std::make_format_args or std::make_wformat_args).

[edit] Example

[edit] Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
P2216R3 C++20 format_args_t was provided due to overparameterization of vformat_to removed
LWG 3810 C++20 basic_format_args has no deduction guide added
LWG 4106 C++20 basic_format_args was default-constructible default constructor removed

[edit] See also

| | class template that provides access to a formatting argument for user-defined formatters (class template) [edit] | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |