Thanks, yes I have that as an alternate example in my longer notes. My understanding is that it still suffers from the type-matching problem as traditional for loops. Your example of:
for (const auto i : std::views::iota(0, count))
only works when count is an int. Otherwise, if for example count is uint32_t, it would need to be:
for (const auto i : std::views::iota(uint32_t{0}, count)
or:
for (const auto i : std::views::iota(0u, count))
or:
for (const auto i : std::views::iota<uint32_t>(0, count))
or:
for (const auto i : std::views::iota<decltype(count)>(0, count))
or something along those lines, or you will get template instantiation failure compiler error. I think that if std::views::iota had a constructor overload that was simply the second argument (count) with implicit zero start, then it would be a good option. However I believe there is interest to reserve such an overload perhaps for infinite ranges?
thanks,
Sophia