Namespaces
Variants

std::chrono::month_day:: ok

From cppreference.net
constexpr bool ok ( ) const noexcept ;
(seit C++20)

Bestimmt, ob diese month_day -Kombination einen gültigen Monat-Tag-Wert speichert.

Die Kombination ist gültig, wenn month() einen gültigen Monat darstellt ( month ( ) . ok ( ) == true ), unsigned { day ( ) } >= 1 , und unsigned { day ( ) } <= D , wobei D die Anzahl der Tage im durch month() dargestellten Monat ist. Die Anzahl der Tage im Februar wird als 29 betrachtet.

Rückgabewert

true wenn die Kombination aus Monat und Tag gültig ist, andernfalls false.

Beispiel

#include <chrono>
#include <iostream>
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';
}

Ausgabe:

true false true