std::format
Defined in header <format>
|
||
template<class... Args> std::string format(std::string_view fmt, const Args&... args); |
(1) | (since C++20) |
template<class... Args> std::wstring format(std::wstring_view fmt, const Args&... args); |
(2) | (since C++20) |
template<class... Args> std::string format(const std::locale& loc, std::string_view fmt, const Args&... args); |
(3) | (since C++20) |
template<class... Args> std::wstring format(const std::locale& loc, std::wstring_view fmt, const Args&... args); |
(4) | (since C++20) |
Format args
according to the format string fmt
, and return the result as a string. If present, loc
is used for locale-specific formatting.
The behavior is undefined if std::formatter<Ti, CharT> does not meet the Formatter requirements for any Ti
in Args
, where CharT
is decltype(fmt)::char_type (char
for overloads (1,3), wchar_t
for overloads (2,4)).
Parameters
fmt | - | string view representing the format string.
Each replacement field has the following format:
arg-id specifies the index of the argument in The format specification is defined by the std::formatter specialization for the corresponding argument.
|
args... | - | arguments to be formatted |
loc | - | std::locale used for locale-specific formatting |
Return value
A string object holding the formatted result.
Exceptions
Throws std::format_error if fmt
is not a valid format string for the provided arguments. Also propagates exception thrown by any formatter.
Notes
It is not an error to provide more arguments than the format string requires:
std::format("{} {}!", "Hello", "world", "something"); // OK, produces "Hello world!"
Example
#include <iostream> #include <format> int main() { std::cout << std::format("Hello {}!\n", "world"); }
Output:
Hello world!