cpp / latest / utility / format.html /

Formatting library (C++20)

The text formatting library offers a safe and extensible alternative to the printf family of functions. It is intended to complement the existing C++ I/O streams library and reuse some of its infrastructure such as overloaded insertion operators for user-defined types.

#include <format>
#include <cassert>
int main() {
    std::string message = std::format("The answer is {}.", 42);
    assert( message == "The answer is 42." );
}

Formatting functions

(C++20)
stores formatted representation of the arguments in a new string
(function template)
(C++20)
writes out formatted representation of its arguments through an output iterator
(function template)
(C++20)
writes out formatted representation of its arguments through an output iterator, not exceeding specified size
(function template)
(C++20)
determines the number of characters necessary to store the formatted representation of its arguments
(function template)

Extensibility support and implementation detail

(C++20)
non-template variant of std::format using type-erased argument representation
(function)
(C++20)
non-template variant of std::format_to using type-erased argument representation
(function template)
(C++20)
class template that provides access to a formatting argument for user-defined formatters
(class template)
(C++20)
class template that defines formatting rules for a given type
(class template)
(C++20)(C++20)(C++20)
formatting string parser state
(class template)
(C++20)(C++20)(C++20)
formatting state, including all formatting arguments and the output iterator
(class template)
(C++20)
argument visitation interface for user-defined formatters
(function template)
(C++20)(C++20)
creates a type-erased object referencing all formatting arguments, convertible to format_args
(function template)
(C++20)(C++20)(C++20)
class that provides access to all formatting arguments
(class template)
(C++20)
exception type thrown on formatting errors
(class)

Notes

Feature testing macro: __cpp_lib_format.

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/format