home | help
std::chrono...ution_clock(3)   C++ Standard Libary  std::chrono...ution_clock(3)

NAME
     std::chrono::high_resolution_clock - std::chrono::high_resolution_clock

Synopsis
	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,  in-
     dependent
	clock.

	std::chrono::high_resolution_clock  meets  the	requirements of Trivial-
     Clock.

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
				 true  if  the time between ticks is always con-
     stant, i.e.
	constexpr bool is_steady calls to now() return values that increase  mo-
     notonically
	[static]		 even in case of some external clock adjustment,
     otherwise
				 false
				 (public static member constant)

Member functions
	now	  returns  a  std::chrono::time_point  representing  the current
     value of the
	[static] clock
		 (public static member function)

Notes
	There has been some controversy around the use of high_resolution_clock.
     Howard
	Hinnant, who claims to have introduced high_resolution_clock to the lan-
     guage, stated
	in 2016 on the ISO C++ Standard - Discussion mailing list that he was in
     favor of
	deprecating it. His rationale was that, because the standard allows  for
     it to be an
	alias  for  std::chrono::steady_clock  or std::chrono::system_clock, its
     use adds
	uncertainty to a program without benefit. However, other participants in
     the thread
	spoke out its favor, for instance on the basis that, because neither
	std::chrono::steady_clock nor std::chrono::system_clock  come  with  any
     particular
	resolution  guarantees,  high_resolution_clock	serves	a useful role by
     giving the
	vendor an opportunity to supply the platform's highest-resolution clock,
     when
	neither its std::chrono::steady_clock nor its  std::chrono::system_clock
     would be
	that.

	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,  as of 2023, libstdc++ has it aliased to sys-
     tem_clock "until
	higher-than-nanosecond definitions become feasible"^[1], MSVC has it as
	steady_clock^[2], and libc++ uses steady_clock when the C++ standard li-
     brary
	implementation	supports  a  monotonic	clock  and  system_clock  other-
     wise^[3].

See also
	system_clock wall clock time from the system-wide realtime clock
	(C++11)      (class)
	steady_clock monotonic clock that will never be adjusted
	(C++11)      (class)

External links
	 1. a libstdc++ <chrono.h>
	 2. a msvc high_resolution_clock
	 3. a libc++ <high_resolution_clock.h>

http://cppreference.com 	   2024.06.10	    std::chrono...ution_clock(3)

home | help