From 229c6876c6f1e7c80907604f79c07d507f9f9dbb Mon Sep 17 00:00:00 2001 From: "Aengus.Jiang" Date: Fri, 27 Jun 2025 11:27:24 +0800 Subject: [PATCH] compatible for c++11 but GCC < (#884) --- include/date/date.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/include/date/date.h b/include/date/date.h index f70153b..73274fd 100644 --- a/include/date/date.h +++ b/include/date/date.h @@ -84,6 +84,12 @@ # pragma warning(disable : 4127) #endif +#if (defined(__GNUC__) && __GNUC__ < 5) +# define OPERATOR_LITERAL(suffix) operator"" _##suffix +#else +# define OPERATOR_LITERAL(suffix) operator""_##suffix +#endif + namespace date { @@ -963,8 +969,8 @@ operator<<(std::basic_ostream& os, const year_month_weekday_last& inline namespace literals { -CONSTCD11 date::day operator ""_d(unsigned long long d) NOEXCEPT; -CONSTCD11 date::year operator ""_y(unsigned long long y) NOEXCEPT; +CONSTCD11 date::day OPERATOR_LITERAL(d)(unsigned long long d) NOEXCEPT; +CONSTCD11 date::year OPERATOR_LITERAL(y)(unsigned long long y) NOEXCEPT; } // inline namespace literals #endif // !defined(_MSC_VER) || (_MSC_VER >= 1900) @@ -1972,7 +1978,7 @@ inline namespace literals CONSTCD11 inline date::day -operator ""_d(unsigned long long d) NOEXCEPT +OPERATOR_LITERAL(d)(unsigned long long d) NOEXCEPT { return date::day{static_cast(d)}; } @@ -1980,7 +1986,7 @@ operator ""_d(unsigned long long d) NOEXCEPT CONSTCD11 inline date::year -operator ""_y(unsigned long long y) NOEXCEPT +OPERATOR_LITERAL(y)(unsigned long long y) NOEXCEPT { return date::year(static_cast(y)); }