template <typename IteratorT>static void shiftWeeks(IteratorT begin, IteratorT end){ .... static const int DayStep = 7 * (IsReverseIterator<IteratorT> ? -1 : 1); ....}
template <typename, typename = void>inline constexpr bool IsReverseIterator = false;template <typename T>inline constexpr bool IsReverseIterator<T, std::void_t<decltype(std::declval<T>().base())>> = true;