You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.8 KiB
57 lines
1.8 KiB
From ab89d342b5454528bd2b46e7f22c0311906f8ca2 Mon Sep 17 00:00:00 2001
|
|
From: "Jason A. Donenfeld" <Jason@zx2c4.com>
|
|
Date: Tue, 22 Jun 2021 14:34:33 +0200
|
|
Subject: [PATCH] format: do not use udl_{arg,formatter} return types when UDL
|
|
is not in use
|
|
|
|
The udl_{arg,formatter} structs are only defined when
|
|
FMT_USE_USER_DEFINED_LITERALS is set, so don't try to define things that
|
|
return that struct when it's not defined.
|
|
---
|
|
include/fmt/format.h | 9 ++++++---
|
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/include/fmt/format.h b/include/fmt/format.h
|
|
index 03ae1c961..92b0f0fc5 100644
|
|
--- a/include/fmt/format.h
|
|
+++ b/include/fmt/format.h
|
|
@@ -2730,6 +2730,8 @@ extern template auto snprintf_float<long double>(long double value,
|
|
#endif // FMT_HEADER_ONLY
|
|
|
|
FMT_END_DETAIL_NAMESPACE
|
|
+
|
|
+#if FMT_USE_USER_DEFINED_LITERALS
|
|
inline namespace literals {
|
|
/**
|
|
\rst
|
|
@@ -2741,18 +2743,18 @@ inline namespace literals {
|
|
fmt::print("Elapsed time: {s:.2f} seconds", "s"_a=1.23);
|
|
\endrst
|
|
*/
|
|
-#if FMT_USE_NONTYPE_TEMPLATE_PARAMETERS
|
|
+# if FMT_USE_NONTYPE_TEMPLATE_PARAMETERS
|
|
template <detail_exported::fixed_string Str>
|
|
constexpr auto operator""_a()
|
|
-> detail::udl_arg<remove_cvref_t<decltype(Str.data[0])>,
|
|
sizeof(Str.data) / sizeof(decltype(Str.data[0])), Str> {
|
|
return {};
|
|
}
|
|
-#else
|
|
+# else
|
|
constexpr auto operator"" _a(const char* s, size_t) -> detail::udl_arg<char> {
|
|
return {s};
|
|
}
|
|
-#endif
|
|
+# endif
|
|
|
|
/**
|
|
\rst
|
|
@@ -2769,6 +2771,7 @@ constexpr auto operator"" _format(const char* s, size_t n)
|
|
return {{s, n}};
|
|
}
|
|
} // namespace literals
|
|
+#endif // FMT_USE_USER_DEFINED_LITERALS
|
|
|
|
template <typename Locale, FMT_ENABLE_IF(detail::is_locale<Locale>::value)>
|
|
inline auto vformat(const Locale& loc, string_view fmt, format_args args)
|