home | help
std::ranges::zip_view::end(3)  C++ Standard Libary std::ranges::zip_view::end(3)

NAME
     std::ranges::zip_view::end - std::ranges::zip_view::end

Synopsis
	constexpr auto end()					      (1) (since
     C++23)
	    requires (!(/*simple-view*/<Views> && ...);
	constexpr auto end() const				      (2) (since
     C++23)
	    requires (ranges::range<const Views> && ...);
	template< class... Rs >

	  concept /*zip-is-common*/ =
	    (sizeof...(Rs) == 1 && (ranges::common_range<Rs> && ...))
	    ||
	    (!(ranges::bidirectional_range<Rs> && ...) &&	      (3) (expo-
     sition only*)
	(ranges::common_range<Rs> && ...))
	    ||

	    ((ranges::random_access_range<Rs> && ...) &&
	(ranges::sized_range<Rs> && ...));

	Returns  a sentinel or an iterator that compares equal to the end itera-
     tor of the
	std::zip_view.

	Let views_ denote the underlying tuple of views.

	1) Equivalent to:
	  *	return	    /*sentinel*/<false>(/*tuple-transform*/(ranges::end,
     views_));,

	if /*zip-is-common*/<Views...> evaluates to false. Otherwise,
	  *	 return      begin()	  +	 std::iter_difference_t</*itera-
     tor*/<false>>(size());,

	if (ranges::random_access_range<Views> && ...) evaluates to true. Other-
     wise,
	  *	return	    /*iterator*/<false>(/*tuple-transform*/(ranges::end,
     views_));.
	2) Equivalent to:
	  *	 return      /*sentinel*/<true>(/*tuple-transform*/(ranges::end,
     views_));,

	if /*zip-is-common*/<const Views...> evaluates to false. Otherwise,
	  *	 return      begin()	  +	 std::iter_difference_t</*itera-
     tor*/<true>>(size());,

	if  ranges::random_access_range<const  Views>  && ... evaluates to true.
     Otherwise,
	  *	 return      /*iterator*/<true>(/*tuple-transform*/(ranges::end,
     views_));.

Parameters
	(none)

Return value
	An  iterator  or  sentinel  representing the end of the zip_view, as de-
     scribed above.

Notes
	ranges::range<const ranges::zip_view<Views...>> is modeled if  and  only
     if for every
	type Vi in Views..., const Vi models range.

Example
	 This section is incomplete
	 Reason: no example

See also
	begin	    returns an iterator to the beginning
	(C++23)     (public member function)
	ranges::end returns a sentinel indicating the end of a range
	(C++20)     (customization point object)

Category:
	  * Todo no example

http://cppreference.com 	   2024.06.10	   std::ranges::zip_view::end(3)

home | help