void satisfy()

in include/range/v3/view/join.hpp [209:234]


                void satisfy(range_iterator_t<Rng> &it)
                {
                    auto &cur = rng_->cur_;
                    auto &val = rng_->val_;
                    auto const end = ranges::end(rng_->mutable_base());
                    while(toggl_ ? it_ == ranges::end(cur) : val_it_ == ranges::end(val))
                    {
                        if(toggl_)
                        {
                            if(++it == end)
                            {
                                rng_ = nullptr;
                                it_ = detail::value_init{};
                                break;
                            }
                            toggl_ = false;
                            val_it_ = ranges::begin(val);
                        }
                        else
                        {
                            toggl_ = true;
                            cur = view::all(*it);
                            it_ = ranges::begin(cur);
                        }
                    }
                }