< cpp‎ | chrono
Revision as of 12:52, 5 August 2013 by (Talk)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Defined in header <chrono>

    class Clock,
    class Duration = typename Clock::duration

> class time_point;
(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.


[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) [edit]
returns the time point as duration since the start of its clock
(public member function) [edit]
modifies the time point by the given duration
(public member function) [edit]
returns the time point corresponding to the smallest duration
(public static member function) [edit]
returns the time point corresponding to the largest duration
(public static member function) [edit]

[edit] Non-member functions

specializes the std::common_type trait
(class template specialization) [edit]
modifies the time point by the given duration
(function template) [edit]
compares two time points
(function template) [edit]
converts a time point to another time point on the same clock, with a different duration
(function template) [edit]

[edit] Example

This example prints the current time minus 24 hours:

#include <iostream>
#include <iomanip>
#include <ctime>
#include <chrono>
int main()
    using namespace std::chrono;
    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

a time interval
(class template)