Include the standard header <chrono> to define classes and functions that represent and manipulate time durations and time instants.
Beginning in Visual Studio 2015, the implementation of steady_clock has changed to meet the C++ Standard requirements for steadiness and monotonicity. steady_clock is now based on QueryPerformanceCounter() and high_resolution_clock is now a typedef for steady_clock. As a result, in Visual C++ steady_clock::time_point is now a typedef for chrono::time_point<steady_clock>; however, this is not necessarily the case for other implementations.
Syntax
#include <chrono>
Classes
Structs
Functions
Operators
| Name |
Description |
| operator- |
Operator for subtraction or negation of duration and time_point objects. |
| operator!= |
Inequality operator that is used with duration or time_point objects. |
| operator modulo |
Operator for modulo operations on duration objects. |
| operator* |
Multiplication operator for duration objects. |
| operator/ |
Division operator for duration objects. |
| operator+ |
Adds duration and time_point objects. |
| operator< |
Determines whether one duration or time_point object is less than another duration or time_point object. |
| operator<= |
Determines whether one duration or time_point object is less than or equal to another duration or time_point object. |
| operator== |
Determines whether two duration objects represent time intervals that have the same length, or whether two time_point objects represent the same point in time. |
| operator> |
Determines whether one duration or time_point object is greater than another duration or time_point object. |
| operator>= |
Determines whether one duration or time_point object is greater than or equal to another duration or time_point object. |
Predefined Duration Types
For more information about ratio types that are used in the following typedefs, see <ratio>.
| Typedef |
Description |
typedef duration<long long, nano> nanoseconds; |
Synonym for a duration type that has a tick period of one nanosecond. |
typedef duration<long long, micro> microseconds; |
Synonym for a duration type that has a tick period of one microsecond. |
typedef duration<long long, milli> milliseconds; |
Synonym for a duration type that has a tick period of one millisecond. |
typedef duration<long long> seconds; |
Synonym for a duration type that has a tick period of one second. |
typedef duration<int, ratio<60> > minutes; |
Synonym for a duration type that has a tick period of one minute. |
typedef duration<int, ratio<3600> > hours; |
Synonym for a duration type that has a tick period of one hour. |
Literals
(C++11)The <chrono> header defines the following user-defined literals that you can use for greater convenience, type-safety and maintainability of your code. These literals are defined in the literals::chrono_literals inline namespace and are in scope when std::chrono is in scope.
| Literal |
Description |
| chrono::hours operator "" h(unsigned long long Val) |
Specifies hours as an integral value. |
| chrono::duration<double, ratio<3600> > operator "" h(long double Val) |
Specifies hours as a floating-point value. |
| chrono::minutes (operator "" min)(unsigned long long Val) |
Specifies minutes as an integral value. |
| chrono::duration<double, ratio<60> > (operator "" min)( long double Val) |
Specifies minutes as a floating-point value. |
| chrono::seconds operator "" s(unsigned long long Val) |
Specifies minutes as an integral value. |
| chrono::duration<double> operator "" s(long double Val) |
Specifies seconds as a floating-point value. |
| chrono::milliseconds operator "" ms(unsigned long long Val) |
Specifies milliseconds as an integral value. |
| chrono::duration<double, milli> operator "" ms(long double Val) |
Specifies milliseconds as a floating-point value. |
| chrono::microseconds operator "" us(unsigned long long Val) |
Specifies microseconds as an integral value. |
| chrono::duration<double, micro> operator "" us(long double Val) |
Specifies microseconds as a floating-point value. |
| chrono::nanoseconds operator "" ns(unsigned long long Val) |
Specifies nanoseconds as an integral value. |
| chrono::duration<double, nano> operator "" ns(long double Val) |
Specifies nanoseconds as a floating-point value. |
|
|
The following examples show how to use the chrono literals.
constexpr auto day = 24h;
constexpr auto week = 24h* 7;
constexpr auto my_duration_unit = 108ms;
See Also
Header Files Reference