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::as_rvalue_view::  as_rvalue_view

as_rvalue_view  (  )  requires [ std::  default_initializable  ](http://en.cppreference.com/w/cpp/concepts/default_initializable) < V  > =  default  ;  |  (1)  |  (since C++23)   
---|---|---  
constexpr  explicit  as_rvalue_view  (  V base  )  ;  |  (2)  |  (since C++23)   
|  |   
  
1)  Value-initializes ` _base__ ` via its default member initializer (  =  V
(  )  ).

2)  Initializes ` _base__ ` with  std  ::  move  (  base  )  .

###  Parameters

base  |  \-  |  a view   
---|---|---  
  
##  std::ranges::as_rvalue_view::  base

constexpr  V base  (  )  const  & requires [ std::  copy_constructible  ](http://en.cppreference.com/w/cpp/concepts/copy_constructible) < V  > ;  |  (1)  |  (since C++23)   
---|---|---  
constexpr  V base  (  )  && ;  |  (2)  |  (since C++23)   
|  |   
  
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::as_rvalue_view::  begin

constexpr  auto  begin  (  )  requires  (  !  __simple_view  < V  > )  ;  |  (1)  |  (since C++23)   
---|---|---  
constexpr  auto  begin  (  )  const  requires [ ranges::  range  ](http://en.cppreference.com/w/cpp/ranges/range) < const  V  > ;  |  (2)  |  (since C++23)   
|  |   
  
1,2)  Returns  [ std::  move_iterator
](http://en.cppreference.com/w/cpp/iterator/move_iterator) (  [ ranges::
begin  ](http://en.cppreference.com/w/cpp/ranges-ranges-placeholder/begin) (
base_  )  )  .

##  std::ranges::as_rvalue_view::  end

constexpr  auto  end  (  )  requires  (  !  __simple_view  < V  > )  ;  |  (1)  |  (since C++23)   
---|---|---  
constexpr  auto  end  (  )  const  requires [ ranges::  range  ](http://en.cppreference.com/w/cpp/ranges/range) < const  V  > ;  |  (2)  |  (since C++23)   
|  |   
  
1)  Returns  [ std::  move_iterator
](http://en.cppreference.com/w/cpp/iterator/move_iterator) (  [ ranges::  end
](http://en.cppreference.com/w/cpp/ranges-ranges-placeholder/end) (  base_  )
)  if ` V ` models [ ` common_range ` ](/w/cpp/ranges