Skip to content

Commit eae174c

Browse files
authored
[libc++][TZDB] Implements zoned_seconds typedef. (llvm#95141)
Implements parts of: - P0355 Extending to chrono Calendars and Time Zones
1 parent b9496a7 commit eae174c

File tree

4 files changed

+9
-2
lines changed

4 files changed

+9
-2
lines changed

libcxx/include/__chrono/zoned_time.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,8 @@ template <class _Duration, class _TimeZonePtrOrName, class TimeZonePtr2>
205205
zoned_time(_TimeZonePtrOrName&&, zoned_time<_Duration, TimeZonePtr2>, choose = choose::earliest)
206206
-> zoned_time<common_type_t<_Duration, seconds>, __time_zone_representation<_TimeZonePtrOrName>>;
207207

208+
using zoned_seconds = zoned_time<seconds>;
209+
208210
template <class _Duration1, class _Duration2, class _TimeZonePtr>
209211
_LIBCPP_HIDE_FROM_ABI bool
210212
operator==(const zoned_time<_Duration1, _TimeZonePtr>& __lhs, const zoned_time<_Duration2, _TimeZonePtr>& __rhs) {

libcxx/include/chrono

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -793,6 +793,8 @@ template<class T> struct zoned_traits;
793793
template<class Duration, class TimeZonePtr = const time_zone*> // C++20
794794
class zoned_time;
795795
796+
using zoned_seconds = zoned_time<seconds>; // C++20
797+
796798
template<class Duration1, class Duration2, class TimeZonePtr> // C++20
797799
bool operator==(const zoned_time<Duration1, TimeZonePtr>& x,
798800
const zoned_time<Duration2, TimeZonePtr>& y);

libcxx/modules/std/chrono.inc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,9 +233,7 @@ export namespace std {
233233
// [time.zone.zonedtime], class template zoned_time
234234
using std::chrono::zoned_time;
235235

236-
# if 0
237236
using std::chrono::zoned_seconds;
238-
# endif // if 0
239237

240238
// [time.zone.leap], leap second support
241239
using std::chrono::leap_second;

libcxx/test/std/time/time.zone/time.zone.zonedtime/types.compile.pass.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
// zoned_time& operator=(const zoned_time&) = default;
2424
//
2525
// };
26+
//
27+
// using zoned_seconds = zoned_time<seconds>;
2628

2729
#include <chrono>
2830
#include <concepts>
@@ -61,3 +63,6 @@ static_assert(!std::is_copy_constructible_v<std::chrono::zoned_time< std::chrono
6163
static_assert(!std::is_move_constructible_v<std::chrono::zoned_time< std::chrono::days, std::unique_ptr<int>>>);
6264
static_assert(!std::is_copy_assignable_v<std::chrono::zoned_time< std::chrono::days, std::unique_ptr<int>>>);
6365
static_assert(!std::is_move_assignable_v<std::chrono::zoned_time< std::chrono::days, std::unique_ptr<int>>>);
66+
67+
// using zoned_seconds = zoned_time<seconds>;
68+
static_assert(std::same_as<std::chrono::zoned_seconds, std::chrono::zoned_time<std::chrono::seconds>>);

0 commit comments

Comments
 (0)