Time
Utilities
Collaboration diagram for Time:

## Files

file | chrono

## Classes

struct | std::common_type< chrono::duration< _Rep1, _Period1 >, chrono::duration< _Rep2, _Period2 > >
struct | std::common_type< chrono::time_point< _Clock, _Duration1 >, chrono::time_point< _Clock, _Duration2 > >
struct | std::chrono::duration< _Rep, _Period >
struct | std::chrono::time_point< _Clock, _Dur >
struct | std::chrono::treat_as_floating_point< _Rep >

## Macros

#define | __cpp_lib_chrono

## Typedefs

using | std::chrono::high_resolution_clock = system_clock
using | std::chrono::hours = duration< int64_t, ratio< 3600 > >
using | std::chrono::microseconds = duration< int64_t, micro >
using | std::chrono::milliseconds = duration< int64_t, milli >
using | std::chrono::minutes = duration< int64_t, ratio< 60 > >
using | std::chrono::nanoseconds = duration< int64_t, nano >
using | std::chrono::seconds = duration< int64_t >

## Functions

template<typename _Rep , typename _Period >
constexpr enable_if_t< numeric_limits< _Rep >::is_signed, duration< _Rep, _Period > > | std::chrono::abs (duration< _Rep, _Period > __d)
template<typename _ToDur , typename _Rep , typename _Period >
constexpr __enable_if_is_duration< _ToDur > | std::chrono::ceil (const duration< _Rep, _Period > &__d)
template<typename _ToDur , typename _Clock , typename _Dur >
constexpr enable_if_t< __is_duration< _ToDur >::value, time_point< _Clock, _ToDur > > | std::chrono::ceil (const time_point< _Clock, _Dur > &__tp)
template<typename _ToDur , typename _Rep , typename _Period >
constexpr __enable_if_is_duration< _ToDur > | std::chrono::duration_cast (const duration< _Rep, _Period > &__d)
template<typename _ToDur , typename _Rep , typename _Period >
constexpr __enable_if_is_duration< _ToDur > | std::chrono::floor (const duration< _Rep, _Period > &__d)
template<typename _ToDur , typename _Clock , typename _Dur >
constexpr enable_if_t< __is_duration< _ToDur >::value, time_point< _Clock, _ToDur > > | std::chrono::floor (const time_point< _Clock, _Dur > &__tp)
template<char... _Digits>
constexpr chrono::hours | std::literals::chrono_literals::operator""h ()
constexpr chrono::duration< long double, ratio< 3600, 1 > > | std::literals::chrono_literals::operator""h (long double __hours)
template<char... _Digits>
constexpr chrono::minutes | std::literals::chrono_literals::operator""min ()
constexpr chrono::duration< long double, ratio< 60, 1 > > | std::literals::chrono_literals::operator""min (long double __mins)
template<char... _Digits>
constexpr chrono::milliseconds | std::literals::chrono_literals::operator""ms ()
constexpr chrono::duration< long double, milli > | std::literals::chrono_literals::operator""ms (long double __msecs)
template<char... _Digits>
constexpr chrono::nanoseconds | std::literals::chrono_literals::operator""ns ()
constexpr chrono::duration< long double, nano > | std::literals::chrono_literals::operator""ns (long double __nsecs)
template<char... _Digits>
constexpr chrono::seconds | std::literals::chrono_literals::operator""s ()
constexpr chrono::duration< long double > | std::literals::chrono_literals::operator""s (long double __secs)
template<char... _Digits>
constexpr chrono::microseconds | std::literals::chrono_literals::operator""us ()
constexpr chrono::duration< long double, micro > | std::literals::chrono_literals::operator""us (long double __usecs)
template<typename _ToDur , typename _Rep , typename _Period >
constexpr enable_if_t< __and_< __is_duration< _ToDur >, __not_< treat_as_floating_point< typename _ToDur::rep > > >::value, _ToDur > | std::chrono::round (const duration< _Rep, _Period > &__d)
template<typename _ToDur , typename _Clock , typename _Dur >
constexpr enable_if_t< __and_< __is_duration< _ToDur >, __not_< treat_as_floating_point< typename _ToDur::rep > > >::value, time_point< _Clock, _ToDur > > | std::chrono::round (const time_point< _Clock, _Dur > &__tp)
template<typename _ToDur , typename _Clock , typename _Dur >
constexpr enable_if< __is_duration< _ToDur >::value, time_point< _Clock, _ToDur > >::type | std::chrono::time_point_cast (const time_point< _Clock, _Dur > &__t)

## Variables

template<typename _Rep >
constexpr bool | std::chrono::treat_as_floating_point_v
template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type | std::chrono::operator- (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type | operator+ (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
template<typename _Rep1 , typename _Rep2 , typename _Period >
constexpr duration< __common_rep_t< _Rep2, _Rep1 >, _Period > | std::chrono::operator* (const _Rep1 &__s, const duration< _Rep2, _Period > &__d)
template<typename _Rep1 , typename _Period , typename _Rep2 >
constexpr duration< __common_rep_t< _Rep1, __disable_if_is_duration< _Rep2 > >, _Period > | std::chrono::operator/ (const duration< _Rep1, _Period > &__d, const _Rep2 &__s)
template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr common_type< _Rep1, _Rep2 >::type | std::chrono::operator/ (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
template<typename _Rep1 , typename _Period , typename _Rep2 >
constexpr duration< __common_rep_t< _Rep1, __disable_if_is_duration< _Rep2 > >, _Period > | std::chrono::operator% (const duration< _Rep1, _Period > &__d, const _Rep2 &__s)
template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type | std::chrono::operator% (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
template<typename _Rep1 , typename _Period , typename _Rep2 >
constexpr duration< __common_rep_t< _Rep1, _Rep2 >, _Period > | operator* (const duration< _Rep1, _Period > &__d, const _Rep2 &__s)
template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr bool | std::chrono::operator< (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr bool | std::chrono::operator!= (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr bool | std::chrono::operator<= (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr bool | std::chrono::operator> (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr bool | std::chrono::operator>= (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >
constexpr bool | operator== (const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
template<typename _Rep1 , typename _Period1 , typename _Clock , typename _Dur2 >
constexpr time_point< _Clock, typename common_type< duration< _Rep1, _Period1 >, _Dur2 >::type > | std::chrono::operator+ (const duration< _Rep1, _Period1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs)
template<typename _Clock , typename _Dur1 , typename _Rep2 , typename _Period2 >
constexpr time_point< _Clock, typename common_type< _Dur1, duration< _Rep2, _Period2 > >::type > | std::chrono::operator- (const time_point< _Clock, _Dur1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr common_type< _Dur1, _Dur2 >::type | std::chrono::operator- (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs)
template<typename _Clock , typename _Dur1 , typename _Rep2 , typename _Period2 >
constexpr time_point< _Clock, typename common_type< _Dur1, duration< _Rep2, _Period2 > >::type > | operator+ (const time_point< _Clock, _Dur1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr bool | std::chrono::operator!= (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs)
template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr bool | std::chrono::operator< (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs)
template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr bool | std::chrono::operator<= (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs)
template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr bool | std::chrono::operator> (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs)
template<typename _Clock , typename _Dur1 , typename _Dur2 >
constexpr bool | std::chrono::operator>= (const time_point< _Clock, _Dur1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs)

## Detailed Description

Classes and functions for time.

Since
  C++11

## Typedef Documentation

## high_resolution_clock

using std::chrono::_V2::high_resolution_clock = typedef system_clock

Highest-resolution clock.

This is the clock "with the shortest tick period." Alias to std::system_clock until higher-than-nanosecond definitions become feasible.

Definition at line 1187 of file chrono.

## hours

using std::chrono::hours = typedef duration<int64_t, ratio<3600> >

hours

Definition at line 853 of file chrono.

## microseconds

using std::chrono::microseconds = typedef duration<int64_t, micro>

microseconds

Definition at line 841 of file chrono.

## milliseconds

using std::chrono::milliseconds = typedef duration<int64_t, milli>

milliseconds

Definition at line 844 of file chrono.

## minutes

using std::chrono::minutes = typedef duration<int64_t, ratio< 60> >

minutes

Definition at line 850 of file chrono.

## nanoseconds

using std::chrono::nanoseconds = typedef duration<int64_t, nano>

nanoseconds

Definition at line 838 of file chrono.

## seconds

using std::chrono::seconds = typedef duration<int64_t>

seconds

Definition at line 847 of file chrono.

## Function Documentation

## duration_cast()

template<typename _ToDur , typename _Rep , typename _Period >

constexpr __enable_if_is_duration<_ToDur> std::chrono::duration_cast | ( | const duration< _Rep, _Period > & | __d | ) |

constexpr

duration_cast

Definition at line 267 of file chrono.

## operator!=()

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >

constexpr bool std::chrono::operator!= | ( | const duration< _Rep1, _Period1 > & | __lhs,
|  | const duration< _Rep2, _Period2 > & | __rhs
| ) |  |

constexpr

Comparisons for chrono::duration

Definition at line 797 of file chrono.

## operator""h() [1/2]

template<char... _Digits>

constexpr chrono::hours std::literals::chrono_literals::operator""h | ( |  | ) |

constexpr

Literal suffix for durations of type `std::chrono::hours`

Definition at line 3216 of file chrono.

## operator""h() [2/2]

constexpr chrono::duration<long double, ratio<3600,1> > std::literals::chrono_literals::operator""h | ( | long double | __hours | ) |

constexpr

Literal suffix for durations representing non-integer hours.

Definition at line 3210 of file chrono.

## operator""min() [1/2]

template<char... _Digits>

constexpr chrono::minutes std::literals::chrono_literals::operator""min | ( |  | ) |

constexpr

Literal suffix for durations of type `std::chrono::minutes`

Definition at line 3227 of file chrono.

## operator""min() [2/2]

constexpr chrono::duration<long double, ratio<60,1> > std::literals::chrono_literals::operator""min | ( | long double | __mins | ) |

constexpr

Literal suffix for durations representing non-integer minutes.

Definition at line 3221 of file chrono.

## operator""ms() [1/2]

template<char... _Digits>

constexpr chrono::milliseconds std::literals::chrono_literals::operator""ms | ( |  | ) |

constexpr

Literal suffix for durations of type `std::chrono::milliseconds`

Definition at line 3249 of file chrono.

## operator""ms() [2/2]

constexpr chrono::duration<long double, milli> std::literals::chrono_literals::operator""ms | ( | long double | __msecs | ) |

constexpr

Literal suffix for durations representing non-integer milliseconds.

Definition at line 3243 of file chrono.

## operator""ns() [1/2]

template<char... _Digits>

constexpr chrono::nanoseconds std::literals::chrono_literals::operator""ns | ( |  | ) |

constexpr

Literal suffix for durations of type `std::chrono::nanoseconds`

Definition at line 3271 of file chrono.

## operator""ns() [2/2]

constexpr chrono::duration<long double, nano> std::literals::chrono_literals::operator""ns | ( | long double | __nsecs | ) |

constexpr

Literal suffix for durations representing non-integer nanoseconds.

Definition at line 3265 of file chrono.

## operator""s() [1/2]

template<char... _Digits>

constexpr chrono::seconds std::literals::chrono_literals::operator""s | ( |  | ) |

constexpr

Literal suffix for durations of type `std::chrono::seconds`

Definition at line 3238 of file chrono.

## operator""s() [2/2]

constexpr chrono::duration<long double> std::literals::chrono_literals::operator""s | ( | long double | __secs | ) |

constexpr

Literal suffix for durations representing non-integer seconds.

Definition at line 3232 of file chrono.

## operator""us() [1/2]

template<char... _Digits>

constexpr chrono::microseconds std::literals::chrono_literals::operator""us | ( |  | ) |

constexpr

Literal suffix for durations of type `std::chrono::microseconds`

Definition at line 3260 of file chrono.

## operator""us() [2/2]

constexpr chrono::duration<long double, micro> std::literals::chrono_literals::operator""us | ( | long double | __usecs | ) |

constexpr

Literal suffix for durations representing non-integer microseconds.

Definition at line 3254 of file chrono.

## operator%() [1/2]

template<typename _Rep1 , typename _Period , typename _Rep2 >

constexpr duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2> >, _Period> std::chrono::operator% | ( | const duration< _Rep1, _Period > & | __d,
|  | const _Rep2 & | __s
| ) |  |

constexpr

Arithmetic operators for chrono::duration

Definition at line 729 of file chrono.

## operator%() [2/2]

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >

constexpr common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type std::chrono::operator% | ( | const duration< _Rep1, _Period1 > & | __lhs,
|  | const duration< _Rep2, _Period2 > & | __rhs
| ) |  |

constexpr

Arithmetic operators for chrono::duration

Definition at line 740 of file chrono.

## operator*() [1/2]

template<typename _Rep1 , typename _Rep2 , typename _Period >

constexpr duration<__common_rep_t<_Rep2, _Rep1>, _Period> std::chrono::operator* | ( | const _Rep1 & | __s,
|  | const duration< _Rep2, _Period > & | __d
| ) |  |

constexpr

Arithmetic operators for chrono::duration

Definition at line 700 of file chrono.

## operator*() [2/2]

template<typename _Rep1 , typename _Period , typename _Rep2 >

constexpr duration< __common_rep_t< _Rep1, _Rep2 >, _Period > operator* | ( | const duration< _Rep1, _Period > & | __d,
|  | const _Rep2 & | __s
| ) |  |

related

Arithmetic operators for chrono::duration

Definition at line 691 of file chrono.

## operator+() [1/3]

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >

constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type operator+ | ( | const duration< _Rep1, _Period1 > & | __lhs,
|  | const duration< _Rep2, _Period2 > & | __rhs
| ) |  |

related

The sum of two durations.

Definition at line 646 of file chrono.

## operator+() [2/3]

template<typename _Rep1 , typename _Period1 , typename _Clock , typename _Dur2 >

constexpr time_point<_Clock, typename common_type<duration<_Rep1, _Period1>, _Dur2>::type> std::chrono::operator+ | ( | const duration< _Rep1, _Period1 > & | __lhs,
|  | const time_point< _Clock, _Dur2 > & | __rhs
| ) |  |

constexpr

Adjust a time point forwards by the given duration.

Definition at line 1016 of file chrono.

## operator+() [3/3]

template<typename _Clock , typename _Dur1 , typename _Rep2 , typename _Period2 >

constexpr time_point< _Clock, typename common_type< _Dur1, duration< _Rep2, _Period2 > >::type > operator+ | ( | const time_point< _Clock, _Dur1 > & | __lhs,
|  | const duration< _Rep2, _Period2 > & | __rhs
| ) |  |

related

Adjust a time point forwards by the given duration.

Definition at line 1002 of file chrono.

## operator-() [1/3]

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >

constexpr common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type std::chrono::operator- | ( | const duration< _Rep1, _Period1 > & | __lhs,
|  | const duration< _Rep2, _Period2 > & | __rhs
| ) |  |

constexpr

The difference between two durations.

Definition at line 660 of file chrono.

## operator-() [2/3]

template<typename _Clock , typename _Dur1 , typename _Rep2 , typename _Period2 >

constexpr time_point<_Clock, typename common_type<_Dur1, duration<_Rep2, _Period2> >::type> std::chrono::operator- | ( | const time_point< _Clock, _Dur1 > & | __lhs,
|  | const duration< _Rep2, _Period2 > & | __rhs
| ) |  |

constexpr

Adjust a time point backwards by the given duration.

Definition at line 1030 of file chrono.

## operator-() [3/3]

template<typename _Clock , typename _Dur1 , typename _Dur2 >

constexpr common_type<_Dur1, _Dur2>::type std::chrono::operator- | ( | const time_point< _Clock, _Dur1 > & | __lhs,
|  | const time_point< _Clock, _Dur2 > & | __rhs
| ) |  |

constexpr

The difference between two time points (as a duration)

Definition at line 1042 of file chrono.

## operator/() [1/2]

template<typename _Rep1 , typename _Period , typename _Rep2 >

constexpr duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2> >, _Period> std::chrono::operator/ | ( | const duration< _Rep1, _Period > & | __d,
|  | const _Rep2 & | __s
| ) |  |

constexpr

Arithmetic operators for chrono::duration

Definition at line 706 of file chrono.

## operator/() [2/2]

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >

constexpr common_type<_Rep1, _Rep2>::type std::chrono::operator/ | ( | const duration< _Rep1, _Period1 > & | __lhs,
|  | const duration< _Rep2, _Period2 > & | __rhs
| ) |  |

constexpr

Arithmetic operators for chrono::duration

Definition at line 716 of file chrono.

## operator<()

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >

constexpr bool std::chrono::operator< | ( | const duration< _Rep1, _Period1 > & | __lhs,
|  | const duration< _Rep2, _Period2 > & | __rhs
| ) |  |

constexpr

Comparisons for chrono::duration

Definition at line 771 of file chrono.

## operator<=()

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >

constexpr bool std::chrono::operator<= | ( | const duration< _Rep1, _Period1 > & | __lhs,
|  | const duration< _Rep2, _Period2 > & | __rhs
| ) |  |

constexpr

Comparisons for chrono::duration

Definition at line 804 of file chrono.

## operator==()

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >

constexpr bool operator== | ( | const duration< _Rep1, _Period1 > & | __lhs,
|  | const duration< _Rep2, _Period2 > & | __rhs
| ) |  |

related

Comparisons for chrono::duration

Definition at line 760 of file chrono.

## operator>()

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >

constexpr bool std::chrono::operator> | ( | const duration< _Rep1, _Period1 > & | __lhs,
|  | const duration< _Rep2, _Period2 > & | __rhs
| ) |  |

constexpr

Comparisons for chrono::duration

Definition at line 812 of file chrono.

## operator>=()

template<typename _Rep1 , typename _Period1 , typename _Rep2 , typename _Period2 >

constexpr bool std::chrono::operator>= | ( | const duration< _Rep1, _Period1 > & | __lhs,
|  | const duration< _Rep2, _Period2 > & | __rhs
| ) |  |

constexpr

Comparisons for chrono::duration

Definition at line 819 of file chrono.

## time_point_cast()

template<typename _ToDur , typename _Clock , typename _Dur >

constexpr enable_if<__is_duration<_ToDur>::value, time_point<_Clock, _ToDur> >::type std::chrono::time_point_cast | ( | const time_point< _Clock, _Dur > & | __t | ) |

constexpr

time_point_cast

Definition at line 957 of file chrono.