/ranges/enumerate_view/iterator "cpp/ranges/enumerate
view/iterator")  
[ enumerate_view:: _iterator_ :: _iterator_
](/w/cpp/ranges/enumerate_view/iterator/iterator "cpp/ranges/enumerate
view/iterator/iterator")  
[ enumerate_view:: _iterator_ ::base
](/w/cpp/ranges/enumerate_view/iterator/base "cpp/ranges/enumerate
view/iterator/base")  
[ enumerate_view:: _iterator_ ::index
](/w/cpp/ranges/enumerate_view/iterator/index "cpp/ranges/enumerate
view/iterator/index")  
[ enumerate_view:: _iterator_ ::operator*
](/w/cpp/ranges/enumerate_view/iterator/operator* "cpp/ranges/enumerate
view/iterator/operator*")  
[ enumerate_view:: _iterator_ ::operator[]
](/w/cpp/ranges/enumerate_view/iterator/operator_at "cpp/ranges/enumerate
view/iterator/operator at")  
[ enumerate_view:: _iterator_ ::operator++  
enumerate_view:: _iterator_ ::operator++  (int)  
enumerate_view:: _iterator_ ::operator--  
enumerate_view:: _iterator_ ::operator--  (int)  
enumerate_view:: _iterator_ ::operator+=  
enumerate_view:: _iterator_ ::operator-=
](/w/cpp/ranges/enumerate_view/iterator/operator_arith "cpp/ranges/enumerate
view/iterator/operator arith")  
[ operator==  (enumerate_view:: _iterator_ )  
operator<=> (enumerate_view:: _iterator_ )
](/w/cpp/ranges/enumerate_view/iterator/operator_cmp "cpp/ranges/enumerate
view/iterator/operator cmp")  
[ operator+  (enumerate_view:: _iterator_ )  
operator-  (enumerate_view:: _iterator_ )
](/w/cpp/ranges/enumerate_view/iterator/operator_arith2 "cpp/ranges/enumerate
view/iterator/operator arith2")  
[ iter_move  (enumerate_view:: _iterator_ )
](/w/cpp/ranges/enumerate_view/iterator/iter_move "cpp/ranges/enumerate
view/iterator/iter move")  
[ Sentinel ](/w/cpp/ranges/enumerate_view/sentinel "cpp/ranges/enumerate
view/sentinel")  
[ enumerate_view:: _sentinel_ :: _sentinel_
](/w/cpp/ranges/enumerate_view/sentinel/sentinel "cpp/ranges/enumerate
view/sentinel/sentinel")  
[ enumerate_view:: _sentinel_ ::base
](/w/cpp/ranges/enumerate_view/sentinel/base "cpp/ranges/enumerate
view/sentinel/base")  
[ operator==  (enumerate_view:: _iterator_ ,enumerate_view:: _sentinel_ )
](/w/cpp/ranges/enumerate_view/sentinel/operator_cmp "cpp/ranges/enumerate
view/sentinel/operator cmp")  
[ operator-  (enumerate_view:: _iterator_ ,enumerate_view:: _sentinel_ )
](/w/cpp/ranges/enumerate_view/sentinel/operator- "cpp/ranges/enumerate
view/sentinel/operator-")  
  
[ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/enumerate_view/navbar_content&action=edit)

Defined in header ` [ <ranges> ](/w/cpp/header/ranges "cpp/header/ranges") ` |  |   
---|---|---  
template  < [ ranges::  view  ](http://en.cppreference.com/w/cpp/ranges/view)
V  >  
requires  /*range-with-movable-references*/  < V  >  
class  enumerate_view  
:  public  [ ranges::  view_interface  ](http://en.cppreference.com/w/cpp/ranges/view_interface) < enumerate_view  < V  >> |  (1)  |  (since C++23)   
namespace  views  {  
inline  constexpr  /* unspecified */  enumerate  =  /* unspecified */  ;  
}  |  (2)  |  (since C++23)   
Call signature  |  |   
template  < [ ranges::  viewable_range
](http://en.cppreference.com/w/cpp/ranges/viewable_range) R  >  
requires  /* see below */  
constexpr  /* see below */  enumerate  (  R  && r  )  ;  |  |  (since C++23)   
Helper concepts  |  |   
template  < class  R  >  
concept  /*range-with-movable-references*/  =  
[ ranges::  input_range
](http://en.cppreference.com/w/cpp/ranges/input_range) < R  > &&  
[ std::  move_constructible
](http://en.cppreference.com/w/cpp/concepts/move_constructible) < [ ranges::
range_reference_t  ](http://en.cppreference.com/w/cpp/ranges/iterator_t) < R
>> &&  
[ std::  move_constructible  ](http://en.cppreference.com/w/cpp/concepts/move_constructible) < [ ranges::  range_rvalue_reference_t  ](http://en.cppreference.com/w/cpp/ranges/iterator_t) < R  >> ;  |  (3)  |  (  exposition only*  )   
|  |   
  
1)  ` enumerate_view ` is a range adaptor that takes a [ ` view `
](/w/cpp