home | help
std::ranges...tor::satisfy(3)  C++ Standard Libary std::ranges...tor::satisfy(3)

NAME
     std::ranges::join_view::iterator::satisfy	- std::ranges::join_view::itera-
     tor::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)

http://cppreference.com 	   2024.06.10	   std::ranges...tor::satisfy(3)

home | help