std::chrono::time_point
From cppreference.com
Defined in header
<chrono>
|
||
template<
class Clock, |
(since C++11) | |
Class template std::chrono::time_point
represents a point in time. It is implemented as if it stores a value of type Duration
indicating the time interval from the start of the Clock
's epoch.
Contents |
[edit] Member types
Member type | Definition |
clock
|
Clock , the clock on which this time point is measured
|
duration
|
Duration , a std::chrono::duration type used to measure the time since epoch
|
rep
|
Rep , an arithmetic type representing the number of ticks of the duration
|
period
|
Period , a std::ratio type representing the tick period of the duration
|
[edit] Member functions
constructs a new time point (public member function) |
|
returns the time point as duration since the start of its clock (public member function) |
|
modifies the time point by the given duration (public member function) |
|
[static]
|
returns the time point corresponding to the smallest duration (public static member function) |
[static]
|
returns the time point corresponding to the largest duration (public static member function) |
[edit] Non-member functions
specializes the std::common_type trait (class template specialization) |
|
modifies the time point by the given duration (function template) |
|
compares two time points (function template) |
|
converts a time point to another time point on the same clock, with a different duration (function template) |
[edit] Example
This example prints the current time minus 24 hours:
#include <iostream> #include <iomanip> #include <ctime> #include <chrono> using std::chrono::system_clock; int main() { system_clock::time_point now = system_clock::now(); std::time_t now_c = system_clock::to_time_t( now - std::chrono::hours(24)); std::cout << "One day ago, the time was " << std::put_time(std::localtime(&now_c), "%F %T") << '\n'; }
Possible output:
One day ago, the time was 2011-10-25 12:00:08
This example prints the time it takes to print "Hello World":
#include <iostream> #include <chrono> using std::chrono::duration_cast; using std::chrono::microseconds; using std::chrono::steady_clock; int main() { steady_clock::time_point start = steady_clock::now(); std::cout << "Hello World\n"; steady_clock::time_point end = steady_clock::now(); std::cout << "Printing took " // duration_cast is required to avoid accidentally losing precision. << duration_cast<microseconds>(end - start).count() << "us.\n"; }
Possible output:
Hello World Printing took 84us.
[edit] See also
(C++11)
|
a time interval (class template) |