| 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 | ||||
basic_format_stringformat_stringwformat_string (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) | ||||
(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 CharT,class...Args> struct basic_format_string; | (1) | (since C++20) |
template<class...Args> using format_string= | (2) | (since C++20) |
template<class...Args> using wformat_string= | (3) | (since C++20) |
Class templatestd::basic_format_string wraps astd::basic_string_view that will be used by formatting functions.
The constructor ofstd::basic_format_string performs compile-time format string checks unless the constructor argument is returned bystd::runtime_format(since C++26).
Contents |
(constructor) | constructs abasic_format_string, raising compile error if the argument is not a format string(public member function) |
get | returns the wrapped string (public member function) |
template<class T> consteval basic_format_string(const T& s); | (1) | |
basic_format_string(/* runtime-format-string */<CharT> s)noexcept; | (2) | (since C++26) |
basic_format_string object that stores a view of strings. If the argument is not a compile-time constant, or if it cannot be parsed as a format string for the formatting argument typesArgs, the construction is ill-formed.basic_format_string object that stores a view of strings as returned bystd::runtime_format. It does not perform format string checks upon construction.| s | - | an object that represents the format string. The format string consists of
Each replacement field has the following format:
1) replacement field without a format specification 2) replacement field with a format specification
| ||||||||||||||||||||||||||||||||||||||||||||||
constexprstd::basic_string_view<CharT> get()constnoexcept; | ||
Returns the stored string view.
The alias templatesformat_string andwformat_string usestd::type_identity_t to inhibit template argument deduction. Typically, when they appear as a function parameter, their template arguments are deduced from other function arguments.
template<class...Args>std::string format(std::format_string<Args...> fmt, Args&&...args); auto s= format("{} {}",1.0,2);// Calls format<double, int>. Args are deduced from 1.0, 2// Due to the use of type_identity_t in format_string, template argument deduction// does not consider the type of the format string.
| This section is incomplete Reason: no example |
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| P2508R1 | C++20 | there's no user-visible name for this facility | the namebasic_format_string is exposed |