27 Time library [time]

27.7 Clocks [time.clock]

27.7.10 time_­point conversions [time.clock.cast]

27.7.10.4 Conversions between system_­clock and other clocks [time.clock.cast.sys]

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<Duration>, where Duration is a valid chrono​::​duration specialization.
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, Duration>, where Duration is a valid chrono​::​duration specialization.
Returns: DestClock​::​from_­sys(t).