diff options
Diffstat (limited to 'libcxx/include/__chrono/ostream.h')
-rw-r--r-- | libcxx/include/__chrono/ostream.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libcxx/include/__chrono/ostream.h b/libcxx/include/__chrono/ostream.h index f171944b5cab..b687ef8059d5 100644 --- a/libcxx/include/__chrono/ostream.h +++ b/libcxx/include/__chrono/ostream.h @@ -42,11 +42,18 @@ _LIBCPP_BEGIN_NAMESPACE_STD namespace chrono { template <class _CharT, class _Traits, class _Duration> + requires(!treat_as_floating_point_v<typename _Duration::rep> && _Duration{1} < days{1}) _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& -operator<<(basic_ostream<_CharT, _Traits>& __os, const sys_time<_Duration> __tp) { +operator<<(basic_ostream<_CharT, _Traits>& __os, const sys_time<_Duration>& __tp) { return __os << std::format(__os.getloc(), _LIBCPP_STATICALLY_WIDEN(_CharT, "{:L%F %T}"), __tp); } +template <class _CharT, class _Traits> +_LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& +operator<<(basic_ostream<_CharT, _Traits>& __os, const sys_days& __dp) { + return __os << year_month_day{__dp}; +} + template <class _CharT, class _Traits, class _Duration> _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const file_time<_Duration> __tp) { |