it view/deduction guides")  
  
[ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/split_view/navbar_content&action=edit)

Defined in header ` [ <ranges> ](/w/cpp/header/ranges "cpp/header/ranges") ` |  |   
---|---|---  
template  < [ ranges::  forward_range
](http://en.cppreference.com/w/cpp/ranges/forward_range) V, [ ranges::
forward_range  ](http://en.cppreference.com/w/cpp/ranges/forward_range)
Pattern  >  
requires [ ranges::  view  ](http://en.cppreference.com/w/cpp/ranges/view) < V
> &&  
[ ranges::  view  ](http://en.cppreference.com/w/cpp/ranges/view) < Pattern  >
&&  
[ std::  indirectly_comparable
](http://en.cppreference.com/w/cpp/iterator/indirectly_comparable) < [
ranges::  iterator_t  ](http://en.cppreference.com/w/cpp/ranges-ranges-
placeholder/iterator_t) < V  > ,  
[ ranges::  iterator_t  ](http://en.cppreference.com/w/cpp/ranges-ranges-
placeholder/iterator_t) < Pattern  > ,  
[ ranges::  equal_to  ](http://en.cppreference.com/w/cpp/ranges-functional-
placeholder/equal_to) >  
class  split_view  
:  public  [ ranges::  view_interface  ](http://en.cppreference.com/w/cpp/ranges/view_interface) < split_view  < V, Pattern  >> |  (1)  |  (since C++20)   
namespace  views  {  
inline  constexpr  /* unspecified */  split  =  /* unspecified */  ;  
}  |  (2)  |  (since C++20)   
Call signature  |  |   
template  < [ ranges::  viewable_range
](http://en.cppreference.com/w/cpp/ranges/viewable_range) R,  class  Pattern
>  
requires  /* see below */  
constexpr  [ ranges::  view  ](http://en.cppreference.com/w/cpp/ranges/view) auto  split  (  R  && r, Pattern  && pattern  )  ;  |  |  (since C++20)   
template  < class  Pattern  >  
constexpr  /* range adaptor closure */  split  (  Pattern  && pattern  )  ;  |  |  (since C++20)   
|  |   
  
1)  ` split_view ` takes a [ ` view ` ](/w/cpp/ranges/view "cpp/ranges/view")
and a delimiter, and splits the [ ` view ` ](/w/cpp/ranges/view
"cpp/ranges/view") into subranges on the delimiter.

2)  [ RangeAdaptorObject  ](/w/cpp/named_req/RangeAdaptorObject "cpp/named
req/RangeAdaptorObject") . The expression  views  ::  split  (  e, p  )  is [
expression-equivalent ](/w/cpp/language/expressions#Expression-equivalence
"cpp/language/expressions") to  split_view  (  e, p  )  for any suitable
subexpressions  e  and  p  .

` split_view ` models the concepts [ ` forward_range `
](/w/cpp/ranges/forward_range "cpp/ranges/forward range") , and [ `
common_range ` ](/w/cpp/ranges/common_range "cpp/ranges/common range") when
the underlying [ ` view ` ](/w/cpp/ranges/view "cpp/ranges/view") ` V ` models
respective concepts.

The inner range (  [ ranges::  range_reference_t
](http://en.cppreference.com/w/cpp/ranges/iterator_t) < split_view  > ) is a
[ ranges::  subrange  ](http://en.cppreference.com/w/cpp/ranges/subrange) < [
ranges::  iterator_t  ](http://en.cppreference.com/w/cpp/ranges-ranges-
placeholder/iterator_t) < V  >> , which models [ ` common_range `
](/w/cpp/ranges/common_range "cpp/ranges/common range") , models [ `
sized_range ` ](/w/cpp/ranges/sized_range "cpp/ranges/sized range") when  [
ranges::  iterator_t  ](http://en.cppreference.com/w/cpp/ranges-ranges-
placeholder/iterator_t) < V  > models  [ std::  sized_sentinel_for
](http://en.cppreference.com/w/cpp/iterator/sized_sentinel_for) < [ ranges::
iterator_t  ](http://en.cppreference.com/w/cpp/ranges-ranges-
placeholder/iterator_t) < V  >> , and models [ ` contiguous_range `
](/w/cpp/ranges/contiguous_range "cpp/ranges/contiguous range") , [ `
random_access_range ` ](/w/cpp/ranges/random_access_range "cpp/ranges/random
access range") , [ ` bidirectional_range ` ](/w/cpp/ranges/bidirectional_range
"cpp/ranges/bidirectional range") , and [ ` forward_range `
](/w/cpp/ranges/forward_range "cpp/ranges/forward range") when ` V ` models
respective concepts.

##  Contents

  * 1  Data members 
  * 2  Member functions 
    * 2.1  Inherited from  std::ranges::view_interface 
  * 3  Nested classes 
  * 4  De