compatible for c++11 but GCC < (#884)

This commit is contained in:
Aengus.Jiang
2025-06-27 11:27:24 +08:00
committed by Howard Hinnant
parent 0a1b72bf9d
commit 229c6876c6

View File

@@ -84,6 +84,12 @@
# pragma warning(disable : 4127) # pragma warning(disable : 4127)
#endif #endif
#if (defined(__GNUC__) && __GNUC__ < 5)
# define OPERATOR_LITERAL(suffix) operator"" _##suffix
#else
# define OPERATOR_LITERAL(suffix) operator""_##suffix
#endif
namespace date namespace date
{ {
@@ -963,8 +969,8 @@ operator<<(std::basic_ostream<CharT, Traits>& os, const year_month_weekday_last&
inline namespace literals inline namespace literals
{ {
CONSTCD11 date::day operator ""_d(unsigned long long d) NOEXCEPT; CONSTCD11 date::day OPERATOR_LITERAL(d)(unsigned long long d) NOEXCEPT;
CONSTCD11 date::year operator ""_y(unsigned long long y) NOEXCEPT; CONSTCD11 date::year OPERATOR_LITERAL(y)(unsigned long long y) NOEXCEPT;
} // inline namespace literals } // inline namespace literals
#endif // !defined(_MSC_VER) || (_MSC_VER >= 1900) #endif // !defined(_MSC_VER) || (_MSC_VER >= 1900)
@@ -1972,7 +1978,7 @@ inline namespace literals
CONSTCD11 CONSTCD11
inline inline
date::day date::day
operator ""_d(unsigned long long d) NOEXCEPT OPERATOR_LITERAL(d)(unsigned long long d) NOEXCEPT
{ {
return date::day{static_cast<unsigned>(d)}; return date::day{static_cast<unsigned>(d)};
} }
@@ -1980,7 +1986,7 @@ operator ""_d(unsigned long long d) NOEXCEPT
CONSTCD11 CONSTCD11
inline inline
date::year date::year
operator ""_y(unsigned long long y) NOEXCEPT OPERATOR_LITERAL(y)(unsigned long long y) NOEXCEPT
{ {
return date::year(static_cast<int>(y)); return date::year(static_cast<int>(y));
} }