diff --git a/libcxx/include/__chrono/year.h b/libcxx/include/__chrono/year.h --- a/libcxx/include/__chrono/year.h +++ b/libcxx/include/__chrono/year.h @@ -12,6 +12,7 @@ #include <__chrono/duration.h> #include <__config> +#include #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header @@ -100,9 +101,11 @@ year& year::operator-=(const years& __dy) noexcept { *this = *this - __dy; return *this; } -_LIBCPP_HIDE_FROM_ABI inline constexpr -bool year::ok() const noexcept -{ return static_cast(min()) <= __y && __y <= static_cast(max()); } +_LIBCPP_HIDE_FROM_ABI constexpr bool year::ok() const noexcept { + static_assert(static_cast(std::numeric_limits::max()) == static_cast(max())); + return static_cast(min()) <= __y; +} + } // namespace chrono _LIBCPP_END_NAMESPACE_STD