Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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

NAME
       std::ranges::slide_view::end - std::ranges::slide_view::end

Synopsis
	  constexpr auto end()
	      requires	 (!(__simple_view<V>  &&  __slide_caches_nothing<const
       (1) (since C++23)
	  V>));
	  constexpr		  auto		     end()		 const
       (2) (since C++23)
	      requires __slide_caches_nothing<const V>;

	  Returns  a  sentinel	or  an	iterator  representing	the end	of the
       slide_view.

	  1) Let base_ and n_ be the underlying	data members. Equivalent to:
	    *	If   V	 models	   __slide_caches_nothing,    return	itera-
       tor<false>(ranges::begin(base_)
	      +	ranges::range_difference_t<V>(size()), n_);.
	    * Otherwise, if V models __slide_caches_last, return
	      iterator<false>(ranges::prev(ranges::end(base_),	  n_	-   1,
       ranges::begin(base_)),
	      n_);.
	    *	Otherwise,   if	  V   models   common_range,   return	itera-
       tor<false>(ranges::end(base_),
	      ranges::end(base_), n_);.
	    * Otherwise, return	sentinel(ranges::end(base_));.
	  If  V	 models	 __slide_caches_last,  this function caches the	result
       within the
	  slide_view::cached_end_ for use on subsequent	calls. This is	neces-
       sary to provide
	  the amortized	constant-time complexity required by the range.
	  2)   Equivalent   to	 begin()   +  ranges::range_difference_t<const
       V>(size()).

Parameters
	  (none)

Return value
	  A sentinel or	an iterator representing the end of the	slide_view.

Example
       // Run this code

	#include <iostream>
	#include <ranges>

	int main()
	{
	    static constexpr auto source = {'A', 'B', 'C', 'D'};

	    for	(const auto subrange: source | std::views::slide(3))
	    {
		std::cout << "[	";
		for (auto it = subrange.begin(); it != subrange.end(); ++it)
		    std::cout << *it <<	' ';
		std::cout << "]\n";
	    }
	}

Output:
	[ A B C	]
	[ B C D	]

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

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

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::ranges::slide_view::end&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help