_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::owning_view::  owning_view

owning_view  (  )  requires [ std::  default_initializable  ](http://en.cppreference.com/w/cpp/concepts/default_initializable) < R  > =  default  ;  |  (1)  |  (since C++20)   
---|---|---  
owning_view  (  owning_view  && other  )  =  default  ;  |  (2)  |  (since C++20)   
constexpr  owning_view  (  R  && t  )  ;  |  (3)  |  (since C++20)   
owning_view  (  const  owning_view  & )  =  delete  ;  |  (4)  |  (since C++20)   
|  |   
  
1)  Default constructor. Value-initializes the stored range by its default
member initializer (  =  R  (  )  ).

2)  Move constructor. Move constructs the stored range from that of  other  .

3)  Move constructs the stored range from  t  .

4)  Copy constructor is deleted. ` owning_view ` is move-only.

###  Parameters

other  |  \-  |  another ` owning_view ` to move from   
---|---|---  
t  |  \-  |  range to move from   
  
##  std::ranges::owning_view::  operator=

owning_view  & operator  =  (  owning_view  && other  )  =  default  ;  |  (1)  |  (since C++20)   
---|---|---  
owning_view  & operator  =  (  const  owning_view  & )  =  delete  ;  |  (2)  |  (since C++20)   
|  |   
  
1)  Move assignment operator. Move assigns the stored range from that of
other  .

2)  Copy assignment operator is deleted. ` owning_view ` is move-only.

###  Parameters

other  |  \-  |  another ` owning_view ` to move from   
---|---|---  
  
###  Return value

*  this 

##  std::ranges::owning_view::  base

constexpr  R  & base  (  )  & noexcept  ;  |  (1)  |  (since C++20)   
---|---|---  
constexpr  const  R  & base  (  )  const  & noexcept  ;  |  (2)  |  (since C++20)   
constexpr  R  && base  (  )  && noexcept  ;  |  (3)  |  (since C++20)   
constexpr  const  R  && base  (  )  const  && noexcept  ;  |  (4)  |  (since C++20)   
|  |   
  
Returns a reference to the stored range, keeping value category and const-
qualification.

1,2)  Equivalent to  return  r_  ;  .

3,4)  Equivalent to  return  std  ::  move  (  r_  )  ;  .

##  std::ranges::owning_view::  begin

constexpr  [ ranges::  iterator_t  ](http://en.cppreference.com/w/cpp/ranges-ranges-placeholder/iterator_t) < R  > begin  (  )  ;  |  (1)  |  (since C++20)   
---|---|---  
constexpr  auto  begin  (  )  const  requires [ ranges::  range  ](http://en.cppreference.com/w/cpp/ranges/range) < const  R  > ;  |  (2)  |  (since C++20)   
|  |   
  
Equivalent to  return  [ ranges::  begin
](http://en.cppreference.com/w/cpp/ranges-ranges-placeholder/begin) (  r_  )
;  .

##  std::ranges::owning_view::  end

constexpr  [ ranges::  sentinel_t  ](http://en.cppreference.com/w/cpp/ranges-ranges-placeholder/iterator_t) < R  > end  (  )  ;  |  (1)  |  (since C++20)   
---|---|---  
constexpr  auto  end  (  )  c