or* "cpp/ranges/slide
view/iterator/operator*")  
[ slide_view:: _iterator_ ::operator[]
](/w/cpp/ranges/slide_view/iterator/operator_at "cpp/ranges/slide
view/iterator/operator at")  
[ slide_view:: _iterator_ ::operator++  
slide_view:: _iterator_ ::operator++  (int)  
slide_view:: _iterator_ ::operator--  
slide_view:: _iterator_ ::operator--  (int)  
slide_view:: _iterator_ ::operator+=  
slide_view:: _iterator_ ::operator-=
](/w/cpp/ranges/slide_view/iterator/operator_arith "cpp/ranges/slide
view/iterator/operator arith")  
Non-member functions  
[ operator==  (slide_view:: _iterator_ )  
operator< (slide_view:: _iterator_ )  
operator> (slide_view:: _iterator_ )  
operator<=  (slide_view:: _iterator_ )  
operator>=  (slide_view:: _iterator_ )  
operator<=> (slide_view:: _iterator_ )
](/w/cpp/ranges/slide_view/iterator/operator_cmp "cpp/ranges/slide
view/iterator/operator cmp")  
[ operator+  (slide_view:: _iterator_ )  
operator-  (slide_view:: _iterator_ )
](/w/cpp/ranges/slide_view/iterator/operator_arith2 "cpp/ranges/slide
view/iterator/operator arith2")  
[ Sentinel ](/w/cpp/ranges/slide_view/sentinel "cpp/ranges/slide
view/sentinel")  
Member functions  
[ slide_view:: _sentinel_ :: _sentinel_
](/w/cpp/ranges/slide_view/sentinel/sentinel "cpp/ranges/slide
view/sentinel/sentinel")  
Non-member functions  
[ operator==  (slide_view:: _iterator_ ,slide_view:: _sentinel_ )
](/w/cpp/ranges/slide_view/sentinel/operator_cmp "cpp/ranges/slide
view/sentinel/operator cmp")  
[ operator-  (slide_view:: _iterator_ ,slide_view:: _sentinel_ )
](/w/cpp/ranges/slide_view/sentinel/operator- "cpp/ranges/slide
view/sentinel/operator-")  
  
[ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/slide_view/navbar_content&action=edit)

Defined in header ` [ <ranges> ](/w/cpp/header/ranges "cpp/header/ranges") ` |  |   
---|---|---  
template  < [ ranges::  forward_range
](http://en.cppreference.com/w/cpp/ranges/forward_range) V  >  
requires [ ranges::  view  ](http://en.cppreference.com/w/cpp/ranges/view) < V
>  
class  slide_view  
:  public  [ ranges::  view_interface  ](http://en.cppreference.com/w/cpp/ranges/view_interface) < slide_view  < V  >> |  (1)  |  (since C++23)   
namespace  views  {  
inline  constexpr  /* unspecified */  slide  =  /* unspecified */  ;  
}  |  (2)  |  (since C++23)   
Call signature  |  |   
template  < [ ranges::  viewable_range
](http://en.cppreference.com/w/cpp/ranges/viewable_range) R  >  
constexpr  [ ranges::  view  ](http://en.cppreference.com/w/cpp/ranges/view) auto  slide  (  R  && r, [ ranges::  range_difference_t  ](http://en.cppreference.com/w/cpp/ranges/iterator_t) < R  > n  )  ;  |  |  (since C++23)   
template  < class  DifferenceType  >  
constexpr  /* range adaptor object */  slide  (  DifferenceType  && n  )  ;  |  |  (since C++23)   
Helper concepts  |  |   
template  < class  V  >  
concept __slide_caches_nothing  =  
[ ranges::  random_access_range  ](http://en.cppreference.com/w/cpp/ranges/random_access_range) < V  > && [ ranges::  sized_range  ](http://en.cppreference.com/w/cpp/ranges/sized_range) < V  > ;  |  (3)  |  (  exposition only*  )   
template  < class  V  >  
concept __slide_caches_last  =  
!  __slide_caches_nothing  < V  > &&  
[ ranges::  bidirectional_range  ](http://en.cppreference.com/w/cpp/ranges/bidirectional_range) < V  > && [ ranges::  common_range  ](http://en.cppreference.com/w/cpp/ranges/common_range) < V  > ;  |  (4)  |  (  exposition only*  )   
template  < class  V  >  
concept __slide_caches_first  =  
!  __slide_caches_nothing  < V  > && !  __slide_caches_last  < V  > ;  |  (5)  |  (  exposition only*  )   
|  |   
  
1)  ` slide_view ` is a range adaptor that takes a [ ` view `
](/w/cpp/ranges/view "cpp/ranges/view") and a number  n  and produces a view
whose _m_ ﻿  th  element (a "window") is a view over the _m_ ﻿  th  through
_(m + n - 1)_ ﻿  th  elements of the original view.

Let  s  be the size of the original view. Then th