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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::chrono::is_clock - std::chrono::is_clock

Synopsis
	  Defined in header <chrono>
	  template< class T >	      (since C++20)
	  struct is_clock;

	  If  T	satisfies the Clock requirements, provides the member constant
       value equal
	  true.	For any	other type, value is false.

	  For the purpose of this trait, the extent to which an	implementation
       determines that
	  a type cannot	meet the Clock	requirements  is  unspecified,	except
       that a minimum T
	  shall	 not  qualify  as a Clock unless it meets all following	condi-
       tions:

	    * Each of the following qualified identifiers is valid and denotes
       a type:

	    * T::rep
	    * T::period
	    * T::duration
	    * T::time_point
	    * Each of the following expressions	is well-formed when treated as
       an unevaluated
	      operand:

	    * T::is_steady
	    * T::now()

	  If  the  program   adds   specializations   for   std::is_clock   or
       std::is_clock_v,	the
	  behavior is undefined.

Template parameters
	  T - a	type to	check

	  Helper variable template

	  template<   class   T	 >					(since
       C++20)
	  inline constexpr bool	is_clock_v = is_clock<T>::value;

       Inherited from std::integral_constant

Member constants
	  value	   true	if T satisfies the Clock requirements, false otherwise
	  [static] (public static member constant)

Member functions
	  operator bool	converts the object to bool, returns value
			(public	member function)
	  operator()	returns	value
	  (C++14)	(public	member function)

Member types
	  Type	     Definition
	  value_type bool
	  type	     std::integral_constant<bool, value>

Possible implementation
	  template<class>
	  struct is_clock : std::false_type {};

	  template<class T>
	      requires
		  requires
		  {
		      typename T::rep;
		      typename T::period;
		      typename T::duration;
		      typename T::time_point;
		      T::is_steady; // not required to be bool
		      T::now();	    // not required to be T::time_point
		  }
	  struct is_clock<T> : std::true_type {};

Example
       // Run this code

	#include <chrono>
	#include <ratio>

	int main()
	{
	    static_assert
	    (
		std::chrono::is_clock_v<std::chrono::utc_clock>
		and
		not	    std::chrono::is_clock_v<std::chrono::duration<int,
       std::exa>>
	    );
	}

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

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

home | help