bool is_leap_year_fast(uint32_t y) {
return ((y * 1073750999) & 3221352463) <= 126976;
}Классический подход (читабельно, но медленно):
bool is_leap_year(uint32_t y) {
if ((y % 4) != 0) return false;
if ((y % 100) != 0) return true;
if ((y % 400) == 0) return true;
return false;
}Объяснение того, как это работает:
https://hueffner.de/falk/blog/a-leap-year-check-in-three-instructions.html
Этот метод уже включили в GCC:
https://github.com/gcc-mirror/gcc/commit/28b1b55c60464da23c65c6a8a9515c29f8d67ad8