Unconstrain make_zoned for VS-2015

This commit is contained in:
Howard Hinnant
2017-11-07 13:01:16 -07:00
parent 3a5e8c9384
commit e12f7c66f0

View File

@@ -1674,8 +1674,9 @@ make_zoned(const sys_time<Duration>& tp)
return zoned_time<typename std::common_type<Duration, std::chrono::seconds>::type>(tp); return zoned_time<typename std::common_type<Duration, std::chrono::seconds>::type>(tp);
} }
template <class TimeZonePtr, template <class TimeZonePtr
class = typename std::enable_if #if !defined(_MSC_VER) || (_MSC_VER > 1900)
, class = typename std::enable_if
< <
std::is_class std::is_class
< <
@@ -1685,6 +1686,7 @@ template <class TimeZonePtr,
>::type >::type
>{} >{}
>::type >::type
#endif
> >
inline inline
zoned_time<std::chrono::seconds, TimeZonePtr> zoned_time<std::chrono::seconds, TimeZonePtr>
@@ -1700,11 +1702,13 @@ make_zoned(const std::string& name)
return zoned_seconds(name); return zoned_seconds(name);
} }
template <class Duration, class TimeZonePtr, template <class Duration, class TimeZonePtr
class = typename std::enable_if #if !defined(_MSC_VER) || (_MSC_VER > 1900)
, class = typename std::enable_if
< <
std::is_class<typename std::decay<decltype(*std::declval<TimeZonePtr&>())>::type>{} std::is_class<typename std::decay<decltype(*std::declval<TimeZonePtr&>())>::type>{}
>::type >::type
#endif
> >
inline inline
zoned_time<typename std::common_type<Duration, std::chrono::seconds>::type, TimeZonePtr> zoned_time<typename std::common_type<Duration, std::chrono::seconds>::type, TimeZonePtr>
@@ -1714,11 +1718,13 @@ make_zoned(TimeZonePtr zone, const local_time<Duration>& tp)
TimeZonePtr>(std::move(zone), tp); TimeZonePtr>(std::move(zone), tp);
} }
template <class Duration, class TimeZonePtr, template <class Duration, class TimeZonePtr
class = typename std::enable_if #if !defined(_MSC_VER) || (_MSC_VER > 1900)
, class = typename std::enable_if
< <
std::is_class<typename std::decay<decltype(*std::declval<TimeZonePtr&>())>::type>{} std::is_class<typename std::decay<decltype(*std::declval<TimeZonePtr&>())>::type>{}
>::type >::type
#endif
> >
inline inline
zoned_time<typename std::common_type<Duration, std::chrono::seconds>::type, TimeZonePtr> zoned_time<typename std::common_type<Duration, std::chrono::seconds>::type, TimeZonePtr>
@@ -1778,11 +1784,13 @@ make_zoned(const std::string& name, const zoned_time<Duration, TimeZonePtr>& zt,
return zoned_time<Duration, TimeZonePtr>(name, zt, c); return zoned_time<Duration, TimeZonePtr>(name, zt, c);
} }
template <class Duration, class TimeZonePtr, template <class Duration, class TimeZonePtr
class = typename std::enable_if #if !defined(_MSC_VER) || (_MSC_VER > 1900)
, class = typename std::enable_if
< <
std::is_class<typename std::decay<decltype(*std::declval<TimeZonePtr&>())>::type>{} std::is_class<typename std::decay<decltype(*std::declval<TimeZonePtr&>())>::type>{}
>::type >::type
#endif
> >
inline inline
zoned_time<typename std::common_type<Duration, std::chrono::seconds>::type, TimeZonePtr> zoned_time<typename std::common_type<Duration, std::chrono::seconds>::type, TimeZonePtr>