The assert in this code fires incorrectly:
int a[] = {1, 2};
auto c = a | ranges::views::cycle;
assert (c.begin () + 1 == c.begin () + 2 - 1);
The problem is that the cycle count calculation in cursor::advance() uses truncating division, instead of flooring division.
@hewillk This bug is also present in P3806R0.