diff --git a/include/date/tz.h b/include/date/tz.h index 6d6a2c2..92dbe37 100644 --- a/include/date/tz.h +++ b/include/date/tz.h @@ -417,8 +417,21 @@ public: #endif zoned_time(TimeZonePtr z, const local_time& tp, choose c); - zoned_time(TimeZonePtr z, const zoned_time& zt); - zoned_time(TimeZonePtr z, const zoned_time& zt, choose); + template , + sys_time>::value + >::type> + zoned_time(TimeZonePtr z, const zoned_time& zt); + + template , + sys_time>::value + >::type> + zoned_time(TimeZonePtr z, const zoned_time& zt, choose); #if HAS_STRING_VIEW @@ -718,6 +731,14 @@ template zoned_time(const char*, local_time, choose = choose::earliest) -> zoned_time>; +template +zoned_time(TimeZonePtr, zoned_time) + -> zoned_time; + +template +zoned_time(TimeZonePtr, zoned_time, choose) + -> zoned_time; + #endif // HAS_DEDUCTION_GUIDES template @@ -1403,17 +1424,19 @@ zoned_time::zoned_time(TimeZonePtr z, const local_time +template inline zoned_time::zoned_time(TimeZonePtr z, - const zoned_time& zt) + const zoned_time& zt) : zone_(std::move(z)) , tp_(zt.tp_) {} template +template inline zoned_time::zoned_time(TimeZonePtr z, - const zoned_time& zt, choose) + const zoned_time& zt, choose) : zoned_time(std::move(z), zt) {}