mirror of
https://github.com/fmtlib/fmt.git
synced 2024-11-25 03:30:05 +00:00
Update docs
This commit is contained in:
parent
c65e4286bf
commit
e29c2bc60e
36
doc/api.rst
36
doc/api.rst
@ -67,7 +67,7 @@ checked at compile time in C++20. To pass a runtime format string wrap it in
|
|||||||
.. doxygenfunction:: print(std::FILE *f, format_string<T...> fmt, T&&... args)
|
.. doxygenfunction:: print(std::FILE *f, format_string<T...> fmt, T&&... args)
|
||||||
.. doxygenfunction:: vprint(std::FILE *f, string_view fmt, format_args args)
|
.. doxygenfunction:: vprint(std::FILE *f, string_view fmt, format_args args)
|
||||||
|
|
||||||
Compile-time Format String Checks
|
Compile-Time Format String Checks
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
Compile-time checks are enabled when using ``FMT_STRING``. They support built-in
|
Compile-time checks are enabled when using ``FMT_STRING``. They support built-in
|
||||||
@ -180,13 +180,13 @@ functions and locale support.
|
|||||||
|
|
||||||
.. _udt:
|
.. _udt:
|
||||||
|
|
||||||
Formatting User-defined Types
|
Formatting User-Defined Types
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
The {fmt} library provides formatters for many standard C++ types.
|
The {fmt} library provides formatters for many standard C++ types.
|
||||||
See :ref:`fmt/ranges.h <ranges-api>` for ranges and tuples including standard
|
See :ref:`fmt/ranges.h <ranges-api>` for ranges and tuples including standard
|
||||||
containers such as ``std::vector``, :ref:`fmt/chrono.h <chrono-api>` for date
|
containers such as ``std::vector``, :ref:`fmt/chrono.h <chrono-api>` for date
|
||||||
and time formatting and :ref:`fmt/std.h <std-api>` for filesystem and variant
|
and time formatting and :ref:`fmt/std.h <std-api>` for path and variant
|
||||||
formatting.
|
formatting.
|
||||||
|
|
||||||
To make a user-defined type formattable, specialize the ``formatter<T>`` struct
|
To make a user-defined type formattable, specialize the ``formatter<T>`` struct
|
||||||
@ -308,7 +308,27 @@ If a type provides both a ``formatter`` specialization and an implicit
|
|||||||
conversion to a formattable type, the specialization takes precedence over the
|
conversion to a formattable type, the specialization takes precedence over the
|
||||||
conversion.
|
conversion.
|
||||||
|
|
||||||
Literal-based API
|
For scoped enums (enum classes) {fmt} also provides the ``format_as`` extension
|
||||||
|
API. To format an enum via this API define ``format_as`` that takes this enum
|
||||||
|
and converts it to the underlying type. ``format_as`` should be defined in the
|
||||||
|
same namespace as the enum.
|
||||||
|
|
||||||
|
Example (https://godbolt.org/z/r7vvGE1v7)::
|
||||||
|
|
||||||
|
#include <fmt/format.h>
|
||||||
|
|
||||||
|
namespace kevin_namespacy {
|
||||||
|
enum class film {
|
||||||
|
house_of_cards, american_beauty, se7en = 7
|
||||||
|
};
|
||||||
|
auto format_as(film f) { return fmt::underlying(f); }
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
fmt::print("{}\n", kevin_namespacy::film::se7en); // prints "7"
|
||||||
|
}
|
||||||
|
|
||||||
|
Literal-Based API
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
The following user-defined literals are defined in ``fmt/format.h``.
|
The following user-defined literals are defined in ``fmt/format.h``.
|
||||||
@ -387,8 +407,8 @@ non-default floating-point formatting that occasionally falls back on
|
|||||||
|
|
||||||
.. _ranges-api:
|
.. _ranges-api:
|
||||||
|
|
||||||
Ranges and Tuple Formatting
|
Range and Tuple Formatting
|
||||||
===========================
|
==========================
|
||||||
|
|
||||||
The library also supports convenient formatting of ranges and tuples::
|
The library also supports convenient formatting of ranges and tuples::
|
||||||
|
|
||||||
@ -478,7 +498,7 @@ A ``std::variant`` is only formattable if every variant alternative is formattab
|
|||||||
|
|
||||||
.. _compile-api:
|
.. _compile-api:
|
||||||
|
|
||||||
Format string compilation
|
Format String Compilation
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
``fmt/compile.h`` provides format string compilation enabled via the
|
``fmt/compile.h`` provides format string compilation enabled via the
|
||||||
@ -496,7 +516,7 @@ places where formatting is a performance bottleneck.
|
|||||||
|
|
||||||
.. _color-api:
|
.. _color-api:
|
||||||
|
|
||||||
Terminal color and text style
|
Terminal Color and Text Style
|
||||||
=============================
|
=============================
|
||||||
|
|
||||||
``fmt/color.h`` provides support for terminal color and text style output.
|
``fmt/color.h`` provides support for terminal color and text style output.
|
||||||
|
Loading…
Reference in New Issue
Block a user