template<class SourceClock>
struct clock_time_conversion<system_clock, SourceClock> {
  template<class Duration>
    auto operator()(const time_point<SourceClock, Duration>& t) const
      -> decltype(SourceClock::to_sys(t));
};
template<class Duration>
  auto operator()(const time_point<SourceClock, Duration>& t) const
    -> decltype(SourceClock::to_sys(t));
Constraints: 
SourceClock::to_sys(t) is well-formed
. Mandates: 
SourceClock::to_sys(t) returns a 
sys_time<Duration2>
for some type 
Duration2 (
[time.point.general])
. Returns: 
SourceClock::to_sys(t). template<class DestClock>
struct clock_time_conversion<DestClock, system_clock> {
  template<class Duration>
    auto operator()(const sys_time<Duration>& t) const
      -> decltype(DestClock::from_sys(t));
};
template<class Duration>
  auto operator()(const sys_time<Duration>& t) const
    -> decltype(DestClock::from_sys(t));
Constraints: 
DestClock::from_sys(t) is well-formed
. Mandates: 
DestClock::from_sys(t) returns a 
time_point<DestClock, Duration2>
for some type 
Duration2 (
[time.point.general])
. Returns: 
DestClock::from_sys(t).