std::chrono::high_resolution_clock
Defined in header <chrono>
|
||
class high_resolution_clock; |
(since C++11) | |
Class std::chrono::high_resolution_clock
represents the clock with the smallest tick period provided by the implementation. It may be an alias of std::chrono::system_clock or std::chrono::steady_clock, or a third, independent clock.
std::chrono::high_resolution_clock
meets the requirements of TrivialClock.
Member types
Member type | Definition |
rep
|
arithmetic type representing the number of ticks in the clock's duration |
period
|
a std::ratio type representing the tick period of the clock, in seconds |
duration
|
std::chrono::duration<rep, period> |
time_point
|
std::chrono::time_point<std::chrono::high_resolution_clock> |
Member constants
constexpr bool is_steady [static] |
true if the time between ticks is always constant, i.e. calls to now() return values that increase monotonically even in case of some external clock adjustment, otherwise false (public static member constant) |
Member functions
[static] |
returns a std::chrono::time_point representing the current value of the clock (public static member function) |
Notes
The high_resolution_clock
is not implemented consistently across different standard library implementations, and its use should be avoided. It is often just an alias for std::chrono::steady_clock or std::chrono::system_clock, but which one it is depends on the library or configuration. When it is a system_clock
, it is not monotonic (e.g., the time can go backwards). For example, for gcc's libstdc++ it is system_clock
, for MSVC it is steady_clock
, and for clang's libc++ it depends on configuration.
Generally one should just use std::chrono::steady_clock or std::chrono::system_clock directly instead of std::chrono::high_resolution_clock
: use steady_clock
for duration measurements, and system_clock
for wall-clock time.
See also
(C++11) |
wall clock time from the system-wide realtime clock (class) |
(C++11) |
monotonic clock that will never be adjusted (class) |