iew_interface "cpp/ranges/view interface")  
  
[ cbegin  ](/w/cpp/ranges/view_interface/cbegin "cpp/ranges/view interface/cbegin") (C++23)  |  returns a constant iterator to the beginning of the range.   
(public member function of ` std::ranges::view_interface<D> ` )  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/view_interface/dsc_cbegin&action=edit)  
[ cend  ](/w/cpp/ranges/view_interface/cend "cpp/ranges/view interface/cend") (C++23)  |  returns a sentinel for the constant iterator of the range.   
(public member function of ` std::ranges::view_interface<D> ` )  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/view_interface/dsc_cend&action=edit)  
[ operator bool  ](/w/cpp/ranges/view_interface/operator_bool "cpp/ranges/view interface/operator bool") (C++20)  |  returns whether the derived view is not empty. Provided if  [ ranges::empty ](/w/cpp/ranges/empty "cpp/ranges/empty") is applicable to it.   
(public member function of ` std::ranges::view_interface<D> ` )  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/view_interface/dsc_operator_bool&action=edit)  
[ front  ](/w/cpp/ranges/view_interface/front "cpp/ranges/view interface/front") (C++20)  |  returns the first element in the derived view. Provided if it satisfies [ ` forward_range ` ](/w/cpp/ranges/forward_range "cpp/ranges/forward range") .   
(public member function of ` std::ranges::view_interface<D> ` )  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/view_interface/dsc_front&action=edit)  
[ back  ](/w/cpp/ranges/view_interface/back "cpp/ranges/view interface/back") (C++20)  |  returns the last element in the derived view. Provided if it satisfies [ ` bidirectional_range ` ](/w/cpp/ranges/bidirectional_range "cpp/ranges/bidirectional range") and [ ` common_range ` ](/w/cpp/ranges/common_range "cpp/ranges/common range") .   
(public member function of ` std::ranges::view_interface<D> ` )  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/view_interface/dsc_back&action=edit)  
[ operator[]  ](/w/cpp/ranges/view_interface/operator_at "cpp/ranges/view interface/operator at") (C++20)  |  returns the n  th  element in the derived view. Provided if it satisfies [ ` random_access_range ` ](/w/cpp/ranges/random_access_range "cpp/ranges/random access range") .   
(public member function of ` std::ranges::view_interface<D> ` )  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/view_interface/dsc_operator_at&action=edit)  
  
##  std::ranges::iota_view::  iota_view

iota_view  (  )  requires [ std::  default_initializable  ](http://en.cppreference.com/w/cpp/concepts/default_initializable) < W  > =  default  ;  |  (1)  |  (since C++20)   
---|---|---  
constexpr  explicit  iota_view  (  W value  )  ;  |  (2)  |  (since C++20)   
constexpr  explicit  iota_view  (  [ std::  type_identity_t
](http://en.cppreference.com/w/cpp/types/type_identity) < W  > value,  
[ std::  type_identity_t  ](http://en.cppreference.com/w/cpp/types/type_identity) < Bound  > bound  )  ;  |  (3)  |  (since C++20)   
constexpr  explicit  iota_view  (  /* iterator */  first,  /* see below */  last  )  ;  |  (4)  |  (since C++20)   
|  |   
  
1)  Value-initializes  value_  and  bound_  via their default member
initializers (  =  W  (  )  and  =  Bound  (  )  ).

2)  Initializes  value_  with  value  and value-initializes  bound_  . This
constructor is used to create unbounded ` iota_view ` s, e.g.  iota  (  0  )
yields numbers 0,1,2..., infinitely.

3)  Initializes  value_  with  value  and  bound_  with  bound  . The behavior
is undefined if  [ std::  totally_ordered_with
](http://en.cppreference.com/w/cpp/concepts/totally_ordered) < W, Bound  > is
modeled and  bool  (  value  <=  bound  )  is  false  . This constructor is
used to create bounded iota views, e.g.  iota  (  10  ,  20  )  yields numbers
from