Document format string compilation

This commit is contained in:
Victor Zverovich
2020-06-25 06:57:23 -07:00
parent d0f90b5be7
commit d130ee070f
3 changed files with 28 additions and 1 deletions

View File

@@ -21,6 +21,19 @@ class compiled_string {};
template <typename S>
struct is_compiled_string : std::is_base_of<compiled_string, S> {};
/**
\rst
Constructs a format string that will be translated into an efficient
formatting code at compile time from a string literal *s*. Requires C++17
``constexpr if``.
**Example**::
// Converts 42 into std::string using the most efficient code and no runtime
// format string processing.
std::string s = fmt::format(FMT_COMPILE("{}"), 42);
\endrst
*/
#define FMT_COMPILE(s) FMT_STRING_IMPL(s, fmt::detail::compiled_string)
template <typename T, typename... Tail>

View File

@@ -2840,7 +2840,7 @@ FMT_CONSTEXPR basic_string_view<Char> compile_string_to_view(
**Example**::
// A compile-time error because 'd' is an invalid specifier for strings.
std::string s = format(FMT_STRING("{:d}"), "foo");
std::string s = fmt::format(FMT_STRING("{:d}"), "foo");
\endrst
*/
#define FMT_STRING(s) FMT_STRING_IMPL(s, fmt::compile_string)