ges/lazy_split_view
"cpp/ranges/lazy split view")  
[ split_view  views::split  ](/w/cpp/ranges/split_view "cpp/ranges/split
view")  
** views::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") ` |  |   
---|---|---  
inline  constexpr  /*unspecified*/  counted  =  /*unspecified*/  ;  |  |  (since C++20)   
Call signature  |  |   
template  < class  Iterator,  class  DifferenceType  >  
requires  /* see below */  
constexpr  /*span-or-subrange*/  counted  (  Iterator  && it, DifferenceType  && count  )  ;  |  |  (since C++20)   
|  |   
  
A counted view presents a [ ` view ` ](/w/cpp/ranges/view "cpp/ranges/view")
of the elements of the _counted range_ ` [ ` i ` , ` n ` ) ` for some iterator
` i ` and non-negative integer ` n ` .

A counted range ` [ ` i ` , ` n ` ) ` is the ` n ` elements starting with the
element pointed to by ` i ` and up to but not including the element, if any,
pointed to by the result of ` n ` applications of  ++  i  .

If  n  ==  0  , the counted range is valid and empty. Otherwise, the counted
range is only valid if ` n ` is positive, ` i ` i