/subrange") (C++20)  |  combines an iterator-sentinel pair into a [ ` view ` ](/w/cpp/ranges/view "cpp/ranges/view")   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/dsc_subrange&action=edit)  
  
###  [ [ edit ](/mwiki/index.php?title=cpp/ranges&action=edit&section=1 "Edit
section: Range factories") ]  Range factories

Defined in header ` [ <ranges> ](/w/cpp/header/ranges "cpp/header/ranges") `  
---  
Defined in namespace ` std::ranges `  
[ ranges::empty_view  views::empty  ](/w/cpp/ranges/empty_view "cpp/ranges/empty view") (C++20)  |  an empty [ ` view ` ](/w/cpp/ranges/view "cpp/ranges/view") with no elements   
(class template)  (variable template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/dsc_empty_view&action=edit)  
[ ranges::single_view  views::single  ](/w/cpp/ranges/single_view "cpp/ranges/single view") (C++20)  |  a [ ` view ` ](/w/cpp/ranges/view "cpp/ranges/view") that contains a single element of a specified value   
(class template)  (customization point object)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/dsc_single_view&action=edit)  
[ ranges::iota_view  views::iota  ](/w/cpp/ranges/iota_view "cpp/ranges/iota view") (C++20)  |  a [ ` view ` ](/w/cpp/ranges/view "cpp/ranges/view") consisting of a sequence generated by repeatedly incrementing an initial value   
(class template)  (customization point object)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/dsc_iota_view&action=edit)  
[ ranges::basic_istream_view  views::istream  ](/w/cpp/ranges/basic_istream_view "cpp/ranges/basic istream view") (C++20)  |  a [ ` view ` ](/w/cpp/ranges/view "cpp/ranges/view") consisting of the elements obtained by successive application of ` operator>> ` on the associated input stream   
(class template)  (customization point object)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/dsc_basic_istream_view&action=edit)  
[ ranges::repeat_view  views::repeat  ](/w/cpp/ranges/repeat_view "cpp/ranges/repeat view") (C++23)  |  a [ ` view ` ](/w/cpp/ranges/view "cpp/ranges/view") consisting of a generated sequence by repeatedly producing the same value   
(class template)  (customization point object)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/dsc_repeat_view&action=edit)  
  
###  [ [ edit ](/mwiki/index.php?title=cpp/ranges&action=edit&section=2 "Edit
section: Range adaptors") ]  Range adaptors

Defined in header ` [ <ranges> ](/w/cpp/header/ranges "cpp/header/ranges") `  
---  
Defined in namespace ` std::ranges `  
[ ranges::range_adaptor_closure  ](/w/cpp/ranges/range_adaptor_closure "cpp/ranges/range adaptor closure") (C++23)  |  helper base class template for defining a range adaptor closure object   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/dsc_range_adaptor_closure&action=edit)  
[ views::all_t  views::all  ](/w/cpp/ranges/all_view "cpp/ranges/all view") (C++20)  |  a [ ` view ` ](/w/cpp/ranges/view "cpp/ranges/view") that includes all elements of a [ ` range ` ](/w/cpp/ranges/range "cpp/ranges/range")   
(alias template)  (range adaptor object)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/dsc_all_view&action=edit)  
[ ranges::ref_view  ](/w/cpp/ranges/ref_view "cpp/ranges/ref view") (C++20)  |  a [ ` view ` ](/w/cpp/ranges/view "cpp/ranges/view") of the elements of some other [ ` range ` ](/w/cpp/ranges/range "cpp/ranges/range")   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/dsc_ref_view&action=edit)  
[ ranges::owning_view  ](/w/cpp/ranges/owning_view "cpp/ranges/owning view") (C++20)  |  a [ ` view ` ](/w/cpp/ranges/view "cpp/ranges/view") with unique ownership of some [ ` range ` ](/w/cpp/ranges/range "cpp/ranges/range")   
(class template)