private: constexpr void satisfy(); // exposition only | (since C++20) |
Skips over empty inner ranges and initializes the underlying iterator inner_
.
Let the constant /*ref-is-glvalue*/
be std::is_reference_v<ranges::range_reference_t<Base>>
. The function body is equivalent to.
auto update_inner = [this](const ranges::iterator_t<Base>& x) -> auto&& { if constexpr (/*ref-is-glvalue*/) // *x is a reference return *x; else return parent_->inner_./*emplace-deref*/(x); }; for (; outer_ != ranges::end(parent_->base_); ++outer_) { auto&& inner = update_inner(outer_); inner_ = ranges::begin(inner); if (inner_ != ranges::end(inner)) return; } if constexpr (/*ref-is-glvalue*/) inner_ = InnerIter();
(none).
(none).
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/join_view/iterator/satisfy