Namespaces
Variants

std::chrono::year:: year

From cppreference.net
year ( ) = default ;
(1) (начиная с C++20)
constexpr explicit year ( int y ) noexcept ;
(2) (начиная с C++20)

Создает объект year .

1) Конструктор по умолчанию оставляет значение года неинициализированным.
2) Если y находится в диапазоне [ - 32767 , 32767 ] , создает объект year , содержащий значение года y . В противном случае хранимое значение не определено.

Пример

#include <chrono>
#include <iostream>
int main()
{
    using namespace std::chrono;
    constexpr int leap_years = []
    {
        int count{};
        for (int i{year::min()}; i <= int{year::max()}; ++i)
            if (year{i}.is_leap()) // использует конструктор (2)
                ++count;
        return count;
    } ();
    static_assert(15891 == leap_years);
    std::cout << "В диапазоне [" << int(year::min()) << ", " << int(year::max()) << "] содержится " << leap_years << " високосных лет.\n";
}

Вывод:

В диапазоне [-32767, 32767] содержится 15891 високосных лет.