diff --git a/include/date/tz.h b/include/date/tz.h index bc442e6..b011696 100644 --- a/include/date/tz.h +++ b/include/date/tz.h @@ -151,6 +151,15 @@ enum class choose {earliest, latest}; namespace detail { struct undocumented; + + template + struct nodeduct + { + using type = T; + }; + + template + using nodeduct_t = typename nodeduct::type; } struct sys_info @@ -447,7 +456,7 @@ public: sys_time >::value >::type> - zoned_time(std::string_view name, const sys_time& st); + zoned_time(std::string_view name, detail::nodeduct_t&> st); template >::value >::type> - zoned_time(std::string_view name, const local_time& tp); + zoned_time(std::string_view name, detail::nodeduct_t&> tp); template ::value >::type> - zoned_time(std::string_view name, const local_time& tp, choose c); + zoned_time(std::string_view name, detail::nodeduct_t&> tp, choose c); template template inline zoned_time::zoned_time(std::string_view name, - const sys_time& st) + detail::nodeduct_t&> st) : zoned_time(zoned_traits::locate_zone(name), st) {} @@ -1456,7 +1465,7 @@ template template inline zoned_time::zoned_time(std::string_view name, - const local_time& t) + detail::nodeduct_t&> t) : zoned_time(zoned_traits::locate_zone(name), t) {} @@ -1464,7 +1473,7 @@ template template inline zoned_time::zoned_time(std::string_view name, - const local_time& t, choose c) + detail::nodeduct_t&> t, choose c) : zoned_time(zoned_traits::locate_zone(name), t, c) {}