API Reference

All functions and classes provided by the C++ Format library reside in namespace fmt and macros have prefix FMT_. For brevity the namespace is usually omitted in examples.

Format API

The following functions use format string syntax similar to the one used by Python’s str.format function. They take format_str and args as arguments.

format_str is a format string that contains literal text and replacement fields surrounded by braces {}. The fields are replaced with formatted arguments in the resulting string.

args is an argument list representing arbitrary arguments.

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenclass: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Printf formatting functions

The following functions use printf format string syntax with a POSIX extension for positional arguments.

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Write API

Warning

doxygenclass: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenclass: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenclass: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Utilities

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenfunction: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygendefine: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygendefine: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenclass: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenclass: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenclass: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenclass: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

System Errors

Warning

doxygenclass: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Warning

doxygenclass: Cannot find file: /home/docs/checkouts/readthedocs.org/user_builds/trydocsbook/checkouts/latest/doxygen/xml/index.xml

Custom allocators

The C++ Format library supports custom dynamic memory allocators. A custom allocator class can be specified as a template argument to fmt::BasicMemoryWriter:

typedef fmt::BasicMemoryWriter<char, CustomAllocator> CustomMemoryWriter;

It is also possible to write a formatting function that uses a custom allocator:

typedef std::basic_string<char, std::char_traits<char>, CustomAllocator> CustomString;

CustomString format(CustomAllocator alloc, fmt::CStringRef format_str,
                    fmt::ArgList args) {
  CustomMemoryWriter writer(alloc);
  writer.write(format_str, args);
  return CustomString(writer.data(), writer.size(), alloc);
}
FMT_VARIADIC(CustomString, format, CustomAllocator, fmt::CStringRef)