std::chrono::month_day::ok
Материал из cppreference.com
<tbody>
</tbody>
constexpr bool ok() const noexcept; |
(начиная с C++20) | |
Определяет, хранит ли этот month_day действительную комбинацию месяца и дня.
Комбинация действительна, если month() представляет действительный месяц (month().ok() == true), unsigned{day()} >= 1 и unsigned{day()} <= D, где D это количество дней в месяце, представленном month(). Количество дней в феврале считается равным 29.
Возвращаемое значение
true, если комбинация месяца и дня действительна, иначе false.
Пример
Запустить этот код
#include <iostream>
#include <chrono>
int main()
{
std::cout << std::boolalpha;
constexpr auto md1 {std::chrono::July/15};
std::cout << (md1.ok()) << ' ';
constexpr std::chrono::month_day md2 {std::chrono::month(14), std::chrono::day(42)};
std::cout << (md2.ok()) << ' ';
constexpr auto md3 {std::chrono::February/29};
std::cout << (md3.ok()) << '\n';
}
Вывод:
true false true