llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-libcxx Author: Mark de Wever (mordante) <details> <summary>Changes</summary> Implements parts of: - P0355 Extending to chrono Calendars and Time Zones --- Full diff: https://github.com/llvm/llvm-project/pull/95141.diff 4 Files Affected: - (modified) libcxx/include/__chrono/zoned_time.h (+2) - (modified) libcxx/include/chrono (+2) - (modified) libcxx/modules/std/chrono.inc (-2) - (modified) libcxx/test/std/time/time.zone/time.zone.zonedtime/types.compile.pass.cpp (+5) ``````````diff diff --git a/libcxx/include/__chrono/zoned_time.h b/libcxx/include/__chrono/zoned_time.h index db5e67135d844..d9518ce0a8313 100644 --- a/libcxx/include/__chrono/zoned_time.h +++ b/libcxx/include/__chrono/zoned_time.h @@ -204,6 +204,8 @@ template <class _Duration, class _TimeZonePtrOrName, class TimeZonePtr2> zoned_time(_TimeZonePtrOrName&&, zoned_time<_Duration, TimeZonePtr2>, choose = choose::earliest) -> zoned_time<common_type_t<_Duration, seconds>, __time_zone_representation<_TimeZonePtrOrName>>; +using zoned_seconds = zoned_time<seconds>; + template <class _Duration1, class _Duration2, class _TimeZonePtr> _LIBCPP_HIDE_FROM_ABI bool operator==(const zoned_time<_Duration1, _TimeZonePtr>& __lhs, const zoned_time<_Duration2, _TimeZonePtr>& __rhs) { diff --git a/libcxx/include/chrono b/libcxx/include/chrono index df7ebf45bd907..9a6159cf2c4ab 100644 --- a/libcxx/include/chrono +++ b/libcxx/include/chrono @@ -793,6 +793,8 @@ template<class T> struct zoned_traits; template<class Duration, class TimeZonePtr = const time_zone*> // C++20 class zoned_time; +using zoned_seconds = zoned_time<seconds>; // C++20 + template<class Duration1, class Duration2, class TimeZonePtr> // C++20 bool operator==(const zoned_time<Duration1, TimeZonePtr>& x, const zoned_time<Duration2, TimeZonePtr>& y); diff --git a/libcxx/modules/std/chrono.inc b/libcxx/modules/std/chrono.inc index 89fe7284eb694..3ba3c46150c9c 100644 --- a/libcxx/modules/std/chrono.inc +++ b/libcxx/modules/std/chrono.inc @@ -233,9 +233,7 @@ export namespace std { // [time.zone.zonedtime], class template zoned_time using std::chrono::zoned_time; -# if 0 using std::chrono::zoned_seconds; -# endif // if 0 // [time.zone.leap], leap second support using std::chrono::leap_second; diff --git a/libcxx/test/std/time/time.zone/time.zone.zonedtime/types.compile.pass.cpp b/libcxx/test/std/time/time.zone/time.zone.zonedtime/types.compile.pass.cpp index f2b198249e73d..91e37d0d02897 100644 --- a/libcxx/test/std/time/time.zone/time.zone.zonedtime/types.compile.pass.cpp +++ b/libcxx/test/std/time/time.zone/time.zone.zonedtime/types.compile.pass.cpp @@ -23,6 +23,8 @@ // zoned_time& operator=(const zoned_time&) = default; // // }; +// +// using zoned_seconds = zoned_time<seconds>; #include <chrono> #include <concepts> @@ -57,3 +59,6 @@ static_assert(!std::is_copy_constructible_v<std::chrono::zoned_time< std::chrono static_assert(!std::is_move_constructible_v<std::chrono::zoned_time< std::chrono::days, std::unique_ptr<int>>>); static_assert(!std::is_copy_assignable_v<std::chrono::zoned_time< std::chrono::days, std::unique_ptr<int>>>); static_assert(!std::is_move_assignable_v<std::chrono::zoned_time< std::chrono::days, std::unique_ptr<int>>>); + +// using zoned_seconds = zoned_time<seconds>; +static_assert(std::same_as<std::chrono::zoned_seconds, std::chrono::zoned_time<std::chrono::seconds>>); `````````` </details> https://github.com/llvm/llvm-project/pull/95141 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits