")  
[ split_view  views::split  ](/w/cpp/ranges/split_view "cpp/ranges/split
view")  
[ views::counted  ](/w/cpp/ranges/view_counted "cpp/ranges/view counted")  
[ common_view  views::common  ](/w/cpp/ranges/common_view "cpp/ranges/common
view")  
  
  
  
|  [ reverse_view  views::reverse  ](/w/cpp/ranges/reverse_view
"cpp/ranges/reverse view")  
---  
[ as_const_view  views::as_const  ](/w/cpp/ranges/as_const_view "cpp/ranges/as
const view") (C++23)  (C++23)  
[ elements_view  views::elements  ](/w/cpp/ranges/elements_view
"cpp/ranges/elements view")  
[ keys_view  views::keys  ](/w/cpp/ranges/keys_view "cpp/ranges/keys view")  
[ values_view  views::values  ](/w/cpp/ranges/values_view "cpp/ranges/values
view")  
[ enumerate_view  views::enumerate  ](/w/cpp/ranges/enumerate_view
"cpp/ranges/enumerate view") (C++23)  (C++23)  
[ zip_view  views::zip  ](/w/cpp/ranges/zip_view "cpp/ranges/zip view")
(C++23)  (C++23)  
[ zip_transform_view  views::zip_transform  ](/w/cpp/ranges/zip_transform_view
"cpp/ranges/zip transform view") (C++23)  (C++23)  
  
|  [ adjacent_view  views::adjacent  ](/w/cpp/ranges/adjacent_view
"cpp/ranges/adjacent view") (C++23)  (C++23)  
---  
[ views::pairwise  ](/w/cpp/ranges/adjacent_view "cpp/ranges/adjacent view")
(C++23)  
[ adjacent_transform_view  views::adjacent_transform
](/w/cpp/ranges/adjacent_transform_view "cpp/ranges/adjacent transform view")
(C++23)  (C++23)  
[ views::pairwise_transform  ](/w/cpp/ranges/adjacent_transform_view
"cpp/ranges/adjacent transform view") (C++23)  
[ chunk_view  views::chunk  ](/w/cpp/ranges/chunk_view "cpp/ranges/chunk
view") (C++23)  (C++23)  
[ slide_view  views::slide  ](/w/cpp/ranges/slide_view "cpp/ranges/slide
view") (C++23)  (C++23)  
[ chunk_by_view  views::chunk_by  ](/w/cpp/ranges/chunk_by_view
"cpp/ranges/chunk by view") (C++23)  (C++23)  
[ stride_view  views::stride  ](/w/cpp/ranges/stride_view "cpp/ranges/stride
view") (C++23)  (C++23)  
[ cartesian_product_view  views::cartesian_product
](/w/cpp/ranges/cartesian_product_view "cpp/ranges/cartesian product view")
(C++23)  (C++23)  
  
[ Range generators ](/w/cpp/ranges#Range_generators "cpp/ranges")  
|  [ std::generator  ](/w/cpp/coroutine/generator "cpp/coroutine/generator")
(C++23)  
---  
  
[ Range adaptor objects ](/w/cpp/ranges#Range_adaptor_objects "cpp/ranges")  
[ Range adaptor closure objects ](/w/cpp/ranges#Range_adaptor_closure_objects
"cpp/ranges")  
|  [ range_adaptor_closure  ](/w/cpp/ranges/range_adaptor_closure
"cpp/ranges/range adaptor closure") (C++23)  
---  
  
[ Helper items ](/w/cpp/ranges#Helper_items "cpp/ranges")  
|  [ _copyable-box_  
_movable-box_ ](/w/cpp/ranges/copyable_wrapper "cpp/ranges/copyable wrapper")
(until C++23)  (C++23)  
---  
  
|  [ _simple-view_ ](/w/cpp/ranges#Helper_concepts "cpp/ranges")  
---  
[ _non-propagating-cache_ ](/w/cpp/ranges#Non-propagating_cache "cpp/ranges")  
  
|  
  
---  
  
  
  
[ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/navbar_content&action=edit)

Defined in header ` [ <ranges> ](/w/cpp/header/ranges "cpp/header/ranges") ` |  |   
---|---|---  
Defined in header ` [ <iterator> ](/w/cpp/header/iterator "cpp/header/iterator") ` |  |   
inline  namespace  /*unspecified*/  {  
inline  constexpr  auto  empty  =  /*unspecified*/  ;  
}  |  |  (since C++20)    
(customization point object)  
Call signature  |  |   
template  < class  T  >  
requires  /* see below */  
constexpr  bool  empty  (  T  && t  )  ;  |  |  (since C++20)   
|  |   
  
Determines whether or not  t  has any elements.

A call to ` ranges::empty ` is [ expression-equivalent
](/w/cpp/language/expressions#Expression-equivalence
"cpp/language/expressions") to:

  1. bool  (  t.  empty  (  )  )  , if that expression is valid. 
  2. Otherwise,  (  [ ranges::  size  ](http://en.cppreference.com/w/cpp/ranges/size) (  t  )  ==  0  )  , if that expression is valid. 
  3. Otherwise,  bool  (  [ ranges::  begin  ](http://en.cppreference