# <chrono>

**Visual Studio 2015**

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.

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. |

Name | Description |
---|---|

Describes a type that holds a time interval. | |

Describes a type that represents a point in time. |

Name | Description |
---|---|

Describes specializations of template class common_type for instantiations of | |

Provides specific values for the | |

Represents a | |

Represents a | |

Specifies whether a type can be treated as a floating-point type. |

Name | Description |
---|---|

Casts a | |

Casts a |

Name | Description |
---|---|

Operator for subtraction or negation of | |

Inequality operator that is used with | |

Operator for modulo operations on | |

Multiplication operator for | |

Division operator for | |

Adds | |

Determines whether one | |

Determines whether one | |

Determines whether two | |

Determines whether one | |

Determines whether one |

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 |

typedef duration<long long, micro> microseconds; | Synonym for a |

typedef duration<long long, milli> milliseconds; | Synonym for a |

typedef duration<long long> seconds; | Synonym for a |

typedef duration<int, ratio<60> > minutes; | Synonym for a |

typedef duration<int, ratio<3600> > hours; | Synonym for a |

(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. |