std::chrono::year::ok
De cppreference.com
constexpr bool ok() const noexcept;
|
(desde C++20) | |
Verifica si el año almacenado en *this se encuentra en el rango válido; es decir, [-32767, 32767].
Valor de retorno
true si el año almacenado en *this se encuentra en el rango [-32767, 32767], false de lo contrario.
Posible implementación
Véanse las implementaciones en libstdc++, libc++, y de Howard Hinnant en date.h.
class Year
{
short year_; /* solo exposición */
public:
bool ok() const noexcept { return year_ != std::numeric_limits<short>::min(); }
/*...*/
};
|
Ejemplo
Ejecuta este código
#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
<< "año a comprobar: " << std::setw(6) << i
<< " │ valor interno: " << std::setw(7) << static_cast<int>(y)
<< " │ ok(): " << y.ok() << '\n';
}
}
Posible salida:
año a comprobar: 2020 │ valor interno: 2020 │ ok(): true
año a comprobar: 32768 │ valor interno: -32768 │ ok(): false
año a comprobar: 32769 │ valor interno: -32767 │ ok(): true
año a comprobar: 65535 │ valor interno: -1 │ ok(): true
año a comprobar: 98304 │ valor interno: -32768 │ ok(): false