Difference between revisions of "cpp/utility/format/vformat to"
m |
m (fmt) |
||
Line 3: | Line 3: | ||
{{dcl begin}} | {{dcl begin}} | ||
− | {{dcl header | format }} | + | {{dcl header|format}} |
− | {{dcl | num=1 | since=c++20 |1= | + | {{dcl|num=1|since=c++20|1= |
template< class OutputIt > | template< class OutputIt > | ||
OutputIt vformat_to( OutputIt out, std::string_view fmt, std::format_args args ); | OutputIt vformat_to( OutputIt out, std::string_view fmt, std::format_args args ); | ||
}} | }} | ||
− | {{dcl | num=2 | since=c++20 |1= | + | {{dcl|num=2|since=c++20|1= |
template< class OutputIt > | template< class OutputIt > | ||
OutputIt vformat_to( OutputIt out, std::wstring_view fmt, std::wformat_args args ); | OutputIt vformat_to( OutputIt out, std::wstring_view fmt, std::wformat_args args ); | ||
}} | }} | ||
− | {{dcl | num=3 | since=c++20 |1= | + | {{dcl|num=3|since=c++20|1= |
template< class OutputIt > | template< class OutputIt > | ||
OutputIt vformat_to( OutputIt out, const std::locale& loc, | OutputIt vformat_to( OutputIt out, const std::locale& loc, | ||
std::string_view fmt, std::format_args args ); | std::string_view fmt, std::format_args args ); | ||
}} | }} | ||
− | {{dcl | num=4 | since=c++20 |1= | + | {{dcl|num=4|since=c++20|1= |
template< class OutputIt > | template< class OutputIt > | ||
OutputIt vformat_to( OutputIt out, const std::locale& loc, | OutputIt vformat_to( OutputIt out, const std::locale& loc, | ||
Line 24: | Line 24: | ||
{{dcl end}} | {{dcl end}} | ||
− | Format arguments held by {{ | + | Format arguments held by {{c|args}} according to the format string {{c|fmt}}, and write the result to the output iterator {{c|out}}. If present, {{c|loc}} is used for locale-specific formatting. |
− | Let {{tt|CharT}} be {{c|decltype(fmt)::char_type}} ({{c|char}} for overloads {{v|1,3}}, {{c|wchar_t}} for overloads {{v|2,4}}). | + | Let {{tt|CharT}} be {{c/core|decltype(fmt)::char_type}} ({{c/core|char}} for overloads {{v|1,3}}, {{c/core|wchar_t}} for overloads {{v|2,4}}). |
{{cpp/enable if|plural=true| | {{cpp/enable if|plural=true| | ||
− | {{tt|OutputIt}} satisfies the concept {{c|std::output_iterator<const CharT&>}}. | + | {{tt|OutputIt}} satisfies the concept {{c/core|std::output_iterator<const CharT&>}}.}} |
− | }} | + | {{cpp/precondition| |
− | + | {{tt|OutputIt}} must model (meet the semantic requirements of) the concept {{c/core|std::output_iterator<const CharT&>}}, and {{c/core|std::formatter<Ti, CharT>}} must meet the {{named req|Formatter}} requirements for any {{tt|Ti}} in the type of arguments.}} | |
===Parameters=== | ===Parameters=== | ||
{{par begin}} | {{par begin}} | ||
− | {{par | out | iterator to the output buffer}} | + | {{par|out|iterator to the output buffer}} |
− | {{par | fmt | {{cpp/utility/format/format string}} }} | + | {{par|fmt|{{cpp/utility/format/format string}}}} |
− | {{par | args | arguments to be formatted}} | + | {{par|args|arguments to be formatted}} |
− | {{par | loc | {{lc|std::locale}} used for locale-specific formatting}} | + | {{par|loc|{{lc|std::locale}} used for locale-specific formatting}} |
{{par end}} | {{par end}} | ||
Line 45: | Line 45: | ||
===Exceptions=== | ===Exceptions=== | ||
− | Throws {{lc|std::format_error}} if {{ | + | Throws {{lc|std::format_error}} if {{c|fmt}} is not a valid format string for the provided arguments. Also propagates any exception thrown by formatter or iterator operations. |
===Example=== | ===Example=== | ||
{{example | {{example | ||
− | + | |code= | |
− | + | |output= | |
}} | }} | ||
===Defect reports=== | ===Defect reports=== | ||
{{dr list begin}} | {{dr list begin}} | ||
− | {{dr list item|paper=P2216R3|std=C++20|before=type of {{ | + | {{dr list item|paper=P2216R3|std=C++20|before=type of {{c|args}} is parameterized on {{tt|OutputIt}}|after=not parameterized}} |
{{dr list end}} | {{dr list end}} | ||
Latest revision as of 13:23, 9 July 2024
Defined in header <format>
|
||
template< class OutputIt > OutputIt vformat_to( OutputIt out, std::string_view fmt, std::format_args args ); |
(1) | (since C++20) |
template< class OutputIt > OutputIt vformat_to( OutputIt out, std::wstring_view fmt, std::wformat_args args ); |
(2) | (since C++20) |
template< class OutputIt > OutputIt vformat_to( OutputIt out, const std::locale& loc, |
(3) | (since C++20) |
template< class OutputIt > OutputIt vformat_to( OutputIt out, const std::locale& loc, |
(4) | (since C++20) |
Format arguments held by args according to the format string fmt, and write the result to the output iterator out. If present, loc is used for locale-specific formatting.
Let CharT
be decltype(fmt)::char_type (char for overloads (1,3), wchar_t for overloads (2,4)).
These overloads participate in overload resolution only if
OutputIt
satisfies the concept std::output_iterator<const CharT&>.
OutputIt
must model (meet the semantic requirements of) the concept std::output_iterator<const CharT&>, and std::formatter<Ti, CharT> must meet the Formatter requirements for any Ti
in the type of arguments. Otherwise, the behavior is undefined.
Contents |
[edit] Parameters
out | - | iterator to the output buffer | ||||||||||||||||||||||||||||||||||||||||||||||
fmt | - | 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
| ||||||||||||||||||||||||||||||||||||||||||||||
args | - | arguments to be formatted | ||||||||||||||||||||||||||||||||||||||||||||||
loc | - | std::locale used for locale-specific formatting |
[edit] Return value
Iterator past the end of the output range.
[edit] Exceptions
Throws std::format_error if fmt is not a valid format string for the provided arguments. Also propagates any exception thrown by formatter or iterator operations.
[edit] Example
This section is incomplete Reason: no 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 | type of args is parameterized on OutputIt
|
not parameterized |