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

NAME
     std::ranges::stride_view::end - std::ranges::stride_view::end

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

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

	Let base_ and stride_ be the underlying data members.

	1) Let Const be defined as using Const = false; and Base as using Base =
     V;.
	2) Let Const be defined as using Const = true; and Base as using Base  =
     const V;.

	Equivalent to:

      if constexpr (ranges::common_range<Base> &&
		    ranges::sized_range<Base> &&
		    ranges::forward_range<Base>)
      {
	  auto	missing  =  (stride_  -  ranges::distance(base_)  %  stride_)  %
     stride_;
	  return iterator<Const>(this, ranges::end(base_), missing);
      }
      else if constexpr (ranges::common_range<Base> &&
			 !ranges::bidirectional_range<Base>)
      {
	  return iterator<Const>(this, ranges::end(base_));
      }
      else
      {
	  return std::default_sentinel;
      }

Parameters
	(none)

Return value
	An iterator to the element following the last element, if the underlying
     view V
	models common_range. Otherwise, the std::default_sentinel which compares
     equal to
	the end iterator.

Notes
	stride_view<V> models common_range whenever the underlying view V does.

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...de_view::end(3)

home | help