A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/language/../error/error_code/../../utility/format/format_to.html below:

std::format_to - cppreference.com

template< class OutputIt, class... Args >

OutputIt format_to( OutputIt out,

                    std::format_string<Args...> fmt, Args&&... args );
(1) (since C++20) template< class OutputIt, class... Args >

OutputIt format_to( OutputIt out,

                    std::wformat_string<Args...> fmt, Args&&... args );
(2) (since C++20) template< class OutputIt, class... Args >

OutputIt format_to( OutputIt out, const std::locale& loc,

                    std::format_string<Args...> fmt, Args&&... args );
(3) (since C++20) template< class OutputIt, class... Args >

OutputIt format_to( OutputIt out, const std::locale& loc,

                    std::wformat_string<Args...> fmt, Args&&... args );
(4) (since C++20)

Format 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.

Equivalent to:


Let CharT be 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&>.

If any of the following conditions is satisfied, the behavior is undefined:

[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:

{ arg-id (optional) } (1) { arg-id (optional) : format-spec } (2)

1) replacement field without a format specification

2) replacement field with a format specification

arg-id - specifies the index of the argument in args whose value is to be used for formatting; if it is omitted, the arguments are used in order.

The arg-id s in a format string must all be present or all be omitted. Mixing manual and automatic indexing is an error.

format-spec - the format specification defined by the std::formatter specialization for the corresponding argument. Cannot start with }. 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

Propagates any exception thrown by formatter or iterator operations.

[edit] Notes

It is an error if the format string is not a constant expression unless it is initialized from the result of std::runtime_format(since C++26). std::vformat_to does not have this requirement.

[edit] Example
#include <format>
#include <iostream>
#include <iterator>
#include <string>
 
int main()
{
    std::string buffer;
 
    std::format_to
    (
        std::back_inserter(buffer), // < OutputIt
        "Hello, C++{}!\n",          // < fmt
        "20"                        // < arg
    );
    std::cout << buffer;
    buffer.clear();
 
    std::format_to
    (
        std::back_inserter(buffer), // < OutputIt
        "Hello, {0}::{1}!{2}",      // < fmt
        "std",                      // < arg {0}
        "format_to()",              // < arg {1}
        "\n",                       // < arg {2}
        "extra param(s)..."         // < unused
    );
    std::cout << buffer << std::flush;
 
    std::wstring wbuffer;
    std::format_to
    (
        std::back_inserter(wbuffer),// < OutputIt
        L"Hello, {2}::{1}!{0}",     // < fmt
        L"\n",                      // < arg {0}
        L"format_to()",             // < arg {1}
        L"std",                     // < arg {2}
        L"...is not..."             // < unused
        L"...an error!"             // < unused
    );
    std::wcout << wbuffer;
}

Output:

Hello, C++20!
Hello, std::format_to()!
Hello, std::format_to()!
[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 LWG 3539 C++20 out could not be a move-only iterator it can be P2216R3 C++20 throws std::format_error for invalid format string results in compile-time error instead P2418R2 C++20 objects that are neither const-usable nor copyable
(such as generator-like objects) are not formattable allow formatting these objects P2508R1 C++20 there's no user-visible name for this facility the name basic_format_string is exposed [edit] See also stores formatted representation of the arguments in a new string
(function template) [edit] writes out formatted representation of its arguments through an output iterator, not exceeding specified size
(function template) [edit]

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4