std::ranges::stride_view<V>::end
From cppreference.com
 
 
 < cpp | ranges | stride view 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
Ranges library 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(C++23)(C++23)
  (C++26)(C++26)
(C++23)(C++23)
  (C++26)(C++26)
(C++26)(C++26)
  (C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
  (C++23)(C++23)
(C++23)
(C++23)(C++23)
(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
std::ranges::stride_view 
 
 
stride_view::end
(C++26)
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 ; }
Contents
[edit] Parameters
(none)
[edit] 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.
[edit] Notes
stride_view<V> models common_range whenever the underlying view V does.
[edit] Example
 This section is incomplete
Reason: no example
Reason: no example