table of contents
        
      
      
    | std::ranges::join_view::iterator::satisfy(3) | C++ Standard Libary | std::ranges::join_view::iterator::satisfy(3) | 
NAME¶
std::ranges::join_view::iterator::satisfy - std::ranges::join_view::iterator::satisfy
Synopsis¶
 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();
Parameters¶
(none)
Return value¶
(none)
| 2024.06.10 | http://cppreference.com |