Iterator(Container& in_container, std::size_t n) : container_p{&in_container}, indices{n} { if (n == 0) { this->steps = COMPLETE; return; } size_t inc = 0; for (auto& iter : this->indices.get()) { auto it = std::begin(*this->container_p); dumb_advance(it, std::end(*this->container_p), inc); if (it != std::end(*this->container_p)) { iter = it; ++inc; } else { this->steps = COMPLETE; break; } } }
ForwardIt dumb_next( ForwardIt it, const ForwardIt& end, Distance distance = 1) { dumb_advance(it, end, distance); return it; }
ForwardIt dumb_next(ForwardIt it, Distance distance = 1) { dumb_advance(it, distance); return it; }