<chrono>
The latest version of this topic can be found at <chrono>.
Include the standard header <chrono> to define classes and functions that represent and manipulate time durations and time instants.
(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>
Literals
Literals in the <chrono> header are members of the literals::chrono_literals inline namespace. For more information, see chrono literals.
operator "" h(unsigned long long Val) operator "" h(long double Val) | Specifies that the value represents hours. |
operator "" min(unsigned long long Val) operator "" min(long double Val) | Specifies that the value represents minutes. |
operator "" s(unsigned long long Val)operator "" s(long double Val) | Specifies that the value represents seconds. |
operator "" ms(unsigned long long Val)operator "" ms(long double Val) | Specifies that the value represents milliseconds. |
operator "" us(unsigned long long Val)operator "" us(long double Val) | Specifies that the value represents microseconds. |
operator "" ns(unsigned long long Val)operator "" ns(long double Val) | Specifies that the value represents nanoseconds. |
Classes
Name | Description |
---|---|
duration Class | Describes a type that holds a time interval. |
time_point Class | Describes a type that represents a point in time. |
Structs
Name | Description |
---|---|
common_type Structure | Describes specializations of template class common_type for instantiations of duration and time_point . |
duration_values Structure | Provides specific values for the duration template parameter Rep . |
steady_clock struct | Represents a steady clock. |
system_clock Structure | Represents a clock type that is based on the real-time clock of the system. |
treat_as_floating_point Structure | Specifies whether a type can be treated as a floating-point type. |
Functions
Name | Description |
---|---|
duration_cast Function | Casts a duration object to a specified type. |
time_point_cast Function | Casts a time_point object to a specified type. |
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. |