[time.traits.specializations] # 30 Time library [[time]](./#time) ## 30.4 Time-related traits [[time.traits]](time.traits#specializations) ### 30.4.3 Specializations of common_type [time.traits.specializations] [🔗](#lib:common_type) `template struct common_type, chrono::duration> { using type = chrono::duration, see below>; }; ` [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/time.tex#L1166) The period of the duration indicated by this specialization ofcommon_type is the greatest common divisor of Period1 andPeriod2[.](#1.sentence-1) [*Note [1](#note-1)*: This can be computed by forming a ratio of the greatest common divisor of Period1​::​num and Period2​::​num and the least common multiple of Period1​::​den and Period2​::​den[.](#1.sentence-2) — *end note*] [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/time.tex#L1176) [*Note [2](#note-2)*: The typedef name type is a synonym for theduration with the largest tick period possible where bothduration arguments will convert to it without requiring a division operation[.](#2.sentence-1) The representation of this type is intended to be able to hold any value resulting from this conversion with no truncation error, although floating-point durations can have round-off errors[.](#2.sentence-2) — *end note*] [🔗](#lib:common_type,duration) `template struct common_type, chrono::time_point> { using type = chrono::time_point>; }; ` [3](#3) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/time.tex#L1194) The common type of two time_point types is a time_point with the same clock as the two types and the common type of their two durations[.](#3.sentence-1)