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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::chrono::year::ok - std::chrono::year::ok

Synopsis
	  constexpr bool ok() const noexcept;  (since C++20)

	  Checks  if  the  year	 value	stored in *this	is in the valid	range,
       i.e., [-32767,
	  32767].

Return value
	  true if the year value stored	in *this  is  in  the  range  [-32767,
       32767]. Otherwise
	  false.

Possible implementation
	  See  the  implementations in libstdc++, libc++, and Howard Hinnant's
       date.h.

	  class	Year
	  {
	      short year_; /* exposition only */

	  public:

	      bool ok()	const noexcept {  return  year_	 !=  std::numeric_lim-
       its<short>::min(); }

	      /*...*/
	  };

Example
       // Run this code

	#include <iostream>
	#include <iomanip>
	#include <chrono>

	int main()
	{
	    for	(const int i : {2020, 0x8000, 0x8001, 0xFFFF, 0x18000})	{
		const std::chrono::year	y{i};
		std::cout << std::boolalpha
		    << "input year: " << std::setw(6) << i
		    <<	 "    internal	 value:	 "  <<	std::setw(7)  <<  sta-
       tic_cast<int>(y)
		    << "  ok():	" << y.ok() << '\n';
	    }
	}

Possible output:
	input year:   2020  internal value:    2020  ok(): true
	input year:  32768  internal value:  -32768  ok(): false
	input year:  32769  internal value:  -32767  ok(): true
	input year:  65535  internal value:	 -1  ok(): true
	input year:  98304  internal value:  -32768  ok(): false

http://cppreference.com		  2022.07.31	      std::chrono::year::ok(3)

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

home | help