std:: basic_format_string, std:: format_string, std:: wformat_string
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 template
std::basic_format_string
wraps a
std::basic_string_view
that will be used by formatting functions.
The constructor of
std::basic_format_string
performs compile-time format string checks
unless the constructor argument is returned by
std::runtime_format
(since C++26)
.
Member functions
(constructor)
|
constructs a
basic_format_string
, raising compile error if the argument is not a format string
(public member function) |
get
|
returns the wrapped string
(public member function) |
std::basic_format_string:: basic_format_string
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 string
s
. If the argument is not a compile-time constant, or if it cannot be parsed as a format string for the formatting argument types
Args
, the construction is ill-formed.
basic_format_string
object that stores a view of string
s
as returned by
std::runtime_format
. It does not perform format string checks upon construction.
Parameters
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
|
std::basic_format_string:: get
constexpr
std::
basic_string_view
<
CharT
>
get
(
)
const
noexcept
;
|
||
Returns the stored string view.
Notes
The alias templates
format_string
and
wformat_string
use
std::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.
Example
This section is incomplete
Reason: no example |
Defect reports
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 name
basic_format_string
is exposed
|