[time.clock.conv] # 30 Time library [[time]](./#time) ## 30.7 Clocks [[time.clock]](time.clock#conv) ### 30.7.10 time_point conversions [[time.clock.cast]](time.clock.cast#time.clock.conv) #### 30.7.10.1 Class template clock_time_conversion [time.clock.conv] namespace std::chrono {templatestruct clock_time_conversion {};} [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/time.tex#L3583) clock_time_conversion serves as a trait which can be used to specify how to convert a source time_point of typetime_point to a destination time_point of typetime_point via a specialization:clock_time_conversion[.](#1.sentence-1) A specialization of clock_time_conversion shall provide a const-qualified operator() that takes a parameter of type time_point and returns a time_point representing an equivalent point in time[.](#1.sentence-2) OtherDuration is a chrono​::​duration whose specialization is computed from the input Duration in a manner which can vary for each clock_time_conversion specialization[.](#1.sentence-3) A program may specialize clock_time_conversion if at least one of the template parameters is a user-defined clock type[.](#1.sentence-4) [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/time.tex#L3603) Several specializations are provided by the implementation, as described in[[time.clock.cast.id]](time.clock.cast.id "30.7.10.2 Identity conversions"),[[time.clock.cast.sys.utc]](time.clock.cast.sys.utc "30.7.10.3 Conversions between system_­clock and utc_­clock"),[[time.clock.cast.sys]](time.clock.cast.sys "30.7.10.4 Conversions between system_­clock and other clocks"), and[[time.clock.cast.utc]](time.clock.cast.utc "30.7.10.5 Conversions between utc_­clock and other clocks")[.](#2.sentence-1)