std::chrono::duration
From cppreference.com
Defined in header <chrono>
|
||
template< class Rep, |
(since C++11) | |
Class template std::chrono::duration represents a time interval.
It consists of a count of ticks and a tick period, where the tick period is a compile-time rational constant representing the number of seconds from one tick to the next.
Contents |
[edit] Member types
Member type | Definition |
rep | Rep, an arithmetic type representing the number of ticks |
period | Period, a std::ratio representing the tick period (i.e. the number of seconds per tick) |
[edit] Member functions
constructs new duration (public member function) | |
assigns the contents (public member function) | |
returns the count of ticks (public member function) | |
[static] |
returns the special duration value zero (public static member function) |
[static] |
returns the special duration value min (public static member function) |
[static] |
returns the special duration value max (public static member function) |
implements unary + and unary - (public member function) | |
increments or decrements the tick count (public member function) | |
implements compound assignment between two durations (public member function) |
[edit] Non-member types
Type | Definition |
std::chrono::nanoseconds | duration type with Period std::nano |
std::chrono::microseconds | duration type with Period std::micro |
std::chrono::milliseconds | duration type with Period std::milli |
std::chrono::seconds | duration type with Period std::ratio<1> |
std::chrono::minutes | duration type with Period std::ratio<60> |
std::chrono::hours | duration type with Period std::ratio<3600> |
[edit] Non-member functions
specializes the std::common_type trait (class template specialization) | |
implements arithmetic operations with durations as arguments (function template) | |
compares two durations (function template) | |
converts a duration to another, with a different tick interval (function template) |
[edit] Helper classes
indicates that a duration is convertible to duration with different tick period (class template) | |
constructs zero, min, and max values of a tick count of given type (class template) |
[edit] Example
This example shows how to define several custom duration types and convert between types:
#include <iostream> #include <chrono> int main() { typedef std::chrono::duration<int, std::ratio<1, 100000000>> shakes; typedef std::chrono::duration<int, std::centi> jiffies; typedef std::chrono::duration<float, std::ratio<12096,10000>> microfortnights; typedef std::chrono::duration<float, std::ratio<3155,1000>> nanocenturies; std::chrono::seconds sec(1); std::cout << "1 second is:\n"; std::cout << std::chrono::duration_cast<shakes>(sec).count() << " shakes\n"; std::cout << std::chrono::duration_cast<jiffies>(sec).count() << " jiffies\n"; std::cout << std::chrono::duration_cast<microfortnights>(sec).count() << " microfortnights\n"; std::cout << std::chrono::duration_cast<nanocenturies>(sec).count() << " nanocenturies\n"; }
Output:
1 second is: 100000000 shakes 100 jiffies 0.82672 microfortnights 0.316957 nanocenturies