Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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,
       independent
	  clock.

	  std::chrono::high_resolution_clock  meets  the requirements of Triv-
       ialClock.

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_resolu-
       tion_clock>

Member constants
				   true	 if  the  time between ticks is	always
       constant, i.e.
	  constexpr bool is_steady calls to now() return values	that  increase
       monotonically
	  [static]		   even	in case	of some	external clock adjust-
       ment, 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_resolu-
       tion_clock. Howard
	  Hinnant,  who	claims to have introduced high_resolution_clock	to the
       language, 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 partici-
       pants 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::sys-
       tem_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 li-
       brary 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
       system_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
       library
	  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.  libstdc++ <chrono.h>
	   2.  msvc high_resolution_clock
	   3.  libc++ <high_resolution_clock.h>

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

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::chrono::high_resolution_clock&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help