[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<class Rep1, class Period1, class Rep2, class Period2>
  struct common_type<chrono::duration<Rep1, Period1>, chrono::duration<Rep2, Period2>> {
    using type = chrono::duration<common_type_t<Rep1, Rep2>, 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<class Clock, class Duration1, class Duration2>
  struct common_type<chrono::time_point<Clock, Duration1>, chrono::time_point<Clock, Duration2>> {
    using type = chrono::time_point<Clock, common_type_t<Duration1, Duration2>>;
  };
`

[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)
