std::chrono::year::year
Материал из cppreference.com
<tbody>
</tbody>
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 високосных года.