| Localization library | |||||||||||||||||||||||||
| Regular expressions library(C++11) | |||||||||||||||||||||||||
| Formatting library(C++20) | |||||||||||||||||||||||||
| Null-terminated sequence utilities | |||||||||||||||||||||||||
| Byte strings | |||||||||||||||||||||||||
| Multibyte strings | |||||||||||||||||||||||||
| Wide strings | |||||||||||||||||||||||||
| Primitive numeric conversions | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
| Text encoding identifications | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
| Standard format specification | ||||
| Formatting functions | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
| Format strings | ||||
(C++20)(C++20)(C++20) | ||||
(C++26) | ||||
| Formatting concepts | ||||
(C++23) | ||||
| Formatter | ||||
(C++20) | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++20)(C++20)(C++20) | ||||
(C++20)(C++20)(C++20) | ||||
(C++23) | ||||
(C++23) | ||||
| Formatting arguments | ||||
(C++20) | ||||
basic_format_arg::handle (C++20) | ||||
(C++20)(C++20)(C++20) | ||||
(C++20)(deprecated in C++26) | ||||
(C++20)(C++20) | ||||
| Format error | ||||
(C++20) |
Defined in header <format> | ||
template<class Context> class basic_format_arg<Context>::handle; | (since C++20) | |
A type-erased wrapper that allows formatting an object of a user-defined type.
handle objects are typically created bystd::make_format_args and accessed throughstd::visit_format_arg or thevisit member functions ofstd::basic_format_arg(since C++26).
Contents |
A typical implementation ofhandle isTriviallyCopyable and only stores two non-static data members:
format member function (see below).format (C++20) | formats the referenced object with the given contexts (public member function) |
void format(std::basic_format_parse_context<Context::char_type>& parse_ctx, Context& format_ctx)const; | (since C++20) | |
Let
T be the type of the formatting argument,TD bestd::remove_const_t<T>,TQ beconst TD ifconst TD satisfies__formattable_with<Context> orTD otherwise, andref 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));
Ahandle 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 thehandle. Usually, ahandle is only used within formatting functions.
(C++20) | class template that provides access to a formatting argument for user-defined formatters (class template)[edit] |
(C++20)(C++20) | creates a type-erased object referencing all formatting arguments, convertible toformat_args(function template)[edit] |