py_constructible  ](http://en.cppreference.com/w/cpp/concepts/copy_constructible) < V  > ;  |  (1)  |  (since C++20)   
---|---|---  
constexpr  V base  (  )  && ;  |  (2)  |  (since C++20)   
|  |   
  
Returns the underlying view.

1)  Copy-constructs the result from the underlying view. Equivalent to  return
base_  ;  .

2)  Move-constructs the result from the underlying view. Equivalent to  return
std  ::  move  (  base_  )  ;  .

##  std::ranges::reverse_view::  begin

constexpr  [ std::  reverse_iterator  ](http://en.cppreference.com/w/cpp/iterator/reverse_iterator) < [ ranges::  iterator_t  ](http://en.cppreference.com/w/cpp/ranges-ranges-placeholder/iterator_t) < V  >> begin  (  )  ;  |  (1)  |  (since C++20)   
---|---|---  
constexpr  [ std::  reverse_iterator
](http://en.cppreference.com/w/cpp/iterator/reverse_iterator) < [ ranges::
iterator_t  ](http://en.cppreference.com/w/cpp/ranges-ranges-
placeholder/iterator_t) < V  >> begin  (  )  
requires [ ranges::  common_range  ](http://en.cppreference.com/w/cpp/ranges/common_range) < V  > ;  |  (2)  |  (since C++20)   
constexpr  auto  begin  (  )  const  requires [ ranges::  common_range  ](http://en.cppreference.com/w/cpp/ranges/common_range) < const  V  > ;  |  (3)  |  (since C++20)   
|  |   
  
1)  Returns  [ std::  make_reverse_iterator
](http://en.cppreference.com/w/cpp/iterator/make_reverse_iterator) (  [
ranges::  next  ](http://en.cppreference.com/w/cpp/iterator/ranges/next) (  [
ranges::  begin  ](http://en.cppreference.com/w/cpp/ranges-ranges-
placeholder/begin) (  base_  )  , [ ranges::  end
](http://en.cppreference.com/w/cpp/ranges-ranges-placeholder/end) (  base_  )
)  )  . In order to provide the amortized constant time complexity required by
the [ ` range ` ](/w/cpp/ranges/range "cpp/ranges/range") concept, this
function caches the result within the cache object for use on subsequent
calls.

2,3)  Equivalent to  return  [ std::  make_reverse_iterator
](http://en.cppreference.com/w/cpp/iterator/make_reverse_iterator) (  [
ranges::  end  ](http://en.cppreference.com/w/cpp/ranges-ranges-
placeholder/end) (  base_  )  )  ;  .

##  std::ranges::reverse_view::  end

constexpr  [ std::  reverse_iterator  ](http://en.cppreference.com/w/cpp/iterator/reverse_iterator) < [ ranges::  iterator_t  ](http://en.cppreference.com/w/cpp/ranges-ranges-placeholder/iterator_t) < V  >> end  (  )  ;  |  (1)  |  (since C++20)   
---|---|---  
constexpr  auto  end  (  )  const  requires [ ranges::  common_range  ](http://en.cppreference.com/w/cpp/ranges/common_range) < const  V  > ;  |  (2)  |  (since C++20)   
|  |   
  
Equivalent to  return  [ std::  make_reverse_iterator
](http://en.cppreference.com/w/cpp/iterator/make_reverse_iterator) (  [
ranges::  begin  ](http://en.cppreference.com/w/cpp/ranges-ranges-
placeholder/begin) (  base_  )  )  ;  .

##  std::ranges::reverse_view::  size

constexpr  auto  size  (  )  requires [ ranges::  sized_range  ](http://en.cppreference.com/w/cpp/ranges/sized_range) < V  > ;  |  (1)  |  (since C++20)   
---|---|---  
constexpr  auto  size  (  )  const  requires [ ranges::  sized_range  ](http://en.cppreference.com/w/cpp/ranges/sized_range) < const  V  > ;  |  (2)  |  (since C++20)   
|  |   
  
Returns the size of the view if the view is bounded.

1,2)  Equivalent to  return  [ ranges::  size
](http://en.cppreference.com/w/cpp/ranges/size) (  base_  )  ;  .

###  [ [ edit
](/mwiki/index.php?title=cpp/ranges/reverse_view&action=edit&section=4 "Edit
section: Deduction guides") ]  Deduction guides

template  < class  R  >  
reverse_view  (  R  && )  \-  > reverse_view  < [ views::  all_t  ](http://en.cppreference.com/w/cpp/ranges/all_view) < R  >> ;  |  |  (since C++20)   
---|---|---  
|  |   
  
###  [ [ edit
](/mwiki/index.php?title=cpp/ranges/reverse_view&action=edit&section=5 "Edit
section: Helper templates") ]  Helper templates

template  < class  T  >  
inline  constexpr  bool  enable_borrowed_range  < std  ::  ranges  ::
reverse_view