At first I thought it can be used for performance measurements. But it is said that std::chrono::high_resolution_clock
may be not steady (is_steady
may be false
). It is also said that std::chrono::high_resolution_clock
may even be an alias of std::chrono::system_clock
which is generally not steady. So I can't measure time intervals with this type of clock because at any moment the clock may be adjusted and my measurements will be wrong.
At the same time I can't convert time points of std::chrono::high_resolution_clock
to calendar time because it doesn't have to_time_t
method. So I can't get the real time with this type of clock either.
Then what can std::chrono::high_resolution_clock
be used for?
There are none.
Sorry, my bad.
If you are tempted to use high_resolution_clock
, choose steady_clock
instead. On libc++ and VS high_resolution_clock
is a type alias of steady_clock
anyway.
On gcc high_resolution_clock
is a type alias of system_clock
and I've seen more than one use of high_resolution_clock::to_time_t
on this platform (which is wrong).
Do use <chrono>
. But there are parts of <chrono>
that you should avoid.
high_resolution_clock
..count()
and .time_since_epoch()
unless there is no other way to get the job done.duration_cast
unless the code won't compile without it, and you desire truncation-towards-zero behavior.