compatible for c++11 but GCC < 5

pull/3428/head
Aengus.Jiang 2 months ago
parent ad725d34cc
commit 6f41e18c1e

@ -72,6 +72,12 @@
# endif # endif
#endif // FMT_MODULE #endif // FMT_MODULE
#if (defined(__GNUC__) && __GNUC__ < 5) || defined(_MSC_VER)
# define OPERATOR_LITERAL(suffix) operator"" suffix
#else
# define OPERATOR_LITERAL(suffix) operator""suffix
#endif
#if defined(FMT_USE_NONTYPE_TEMPLATE_ARGS) #if defined(FMT_USE_NONTYPE_TEMPLATE_ARGS)
// Use the provided definition. // Use the provided definition.
#elif defined(__NVCOMPILER) #elif defined(__NVCOMPILER)
@ -3993,7 +3999,7 @@ template <typename T, typename Char = char> struct nested_formatter {
inline namespace literals { inline namespace literals {
#if FMT_USE_NONTYPE_TEMPLATE_ARGS #if FMT_USE_NONTYPE_TEMPLATE_ARGS
template <detail::fixed_string S> constexpr auto operator""_a() { template <detail::fixed_string S> constexpr auto OPERATOR_LITERAL(_a)() {
using char_t = remove_cvref_t<decltype(*S.data)>; using char_t = remove_cvref_t<decltype(*S.data)>;
return detail::udl_arg<char_t, sizeof(S.data) / sizeof(char_t), S>(); return detail::udl_arg<char_t, sizeof(S.data) / sizeof(char_t), S>();
} }
@ -4006,7 +4012,7 @@ template <detail::fixed_string S> constexpr auto operator""_a() {
* using namespace fmt::literals; * using namespace fmt::literals;
* fmt::print("The answer is {answer}.", "answer"_a=42); * fmt::print("The answer is {answer}.", "answer"_a=42);
*/ */
constexpr auto operator""_a(const char* s, size_t) -> detail::udl_arg<char> { constexpr auto OPERATOR_LITERAL(_a)(const char* s, size_t) -> detail::udl_arg<char> {
return {s}; return {s};
} }
#endif // FMT_USE_NONTYPE_TEMPLATE_ARGS #endif // FMT_USE_NONTYPE_TEMPLATE_ARGS

Loading…
Cancel
Save