Namespaces
Variants
Actions

std::ranges::join_view<V>::iterator<Const>::satisfy

From cppreference.com
< cpp‎ | ranges‎ | join view‎ | iterator
 
 
Ranges library
 
 
constexpr void satisfy();
(since C++20)
(exposition only*)

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();

[edit] Parameters

(none)

[edit] Return value

(none)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/ranges/join_view/iterator/satisfy&oldid=175910"

AltStyle によって変換されたページ (->オリジナル) /