p/ranges/single_view "cpp/ranges/single view") satisfy this concept.

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

The inner range (  [ ranges::  range_reference_t
](http://en.cppreference.com/w/cpp/ranges/iterator_t) < lazy_split_view  > )
models the concepts [ ` forward_range ` ](/w/cpp/ranges/forward_range
"cpp/ranges/forward range") and [ ` input_range ` ](/w/cpp/ranges/input_range
"cpp/ranges/input range") when the underlying [ ` view ` ](/w/cpp/ranges/view
"cpp/ranges/view") ` V ` models respective concepts. It does not model [ `
common_range ` ](/w/cpp/ranges/common_range "cpp/ranges/common range") , and
cannot be used with algorithms that expect a [ ` bidirectional_range `
](/w/cpp/ranges/bidirectional_range "cpp/ranges/bidirectional range") or
higher.

##  Contents

  * 1  Data members 
  * 2  Member functions 
    * 2.1  Inherited from  std::ranges::view_interface 
  * 3  Nested classes 
  * 4  Deduction guides 
  * 5  Notes 
  * 6  Example 
  * 7  Defect reports 
  * 8  See also 

  
---  
  
###  [ [ edit
](/mwiki/index.php?title=cpp/ranges/lazy_split_view&action=edit&section=1
"Edit section: Data members") ]  Data members

Member name  |  Definition   
---|---  
` _base__ ` (private)  |  The underlying [ ` view ` ](/w/cpp/ranges/view "cpp/ranges/view") of type ` V ` .   
(  exposition-only member object*  )  
` _pattern__ ` (private)  |  The pattern that is used as a delimiter to split the underlying [ ` view ` ](/w/cpp/ranges/view "cpp/ranges/view") .   
(  exposition-only member object*  )  
` _current__ ` (private)  
(optional)  |  An [ _optional-like_ ](/w/cpp/ranges#Non-propagating_cache "cpp/ranges") caching object of type  /*non-propagating-cache*/  < [ ranges::  iterator_t  ](http://en.cppreference.com/w/cpp/ranges-ranges-placeholder/iterator_t) < V  >> . Caches the result of calls to [ ` begin() ` ](/w/cpp/ranges/lazy_split_view/begin "cpp/ranges/lazy split view/begin") . Present only if ` V ` does not satisfy [ ` forward_range ` ](/w/cpp/ranges/forward_range "cpp/ranges/forward range") .   
(  exposition-only member object*  )  
  
###  [ [ edit
](/mwiki/index.php?title=cpp/ranges/lazy_split_view&action=edit&section=2
"Edit section: Member functions") ]  Member functions

[ (constructor)  ](/w/cpp/ranges/lazy_split_view/lazy_split_view "cpp/ranges/lazy split view/lazy split view") (C++20)  |  constructs a ` lazy_split_view `   
(public member function)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/adaptor/dsc_constructor&action=edit)  
---|---  
[ base  ](/w/cpp/ranges/lazy_split_view/base "cpp/ranges/lazy split view/base") (C++20)  |  returns a copy of the underlying (adapted) view   
(public member function)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/adaptor/dsc_base&action=edit)  
[ begin  ](/w/cpp/ranges/lazy_split_view/begin "cpp/ranges/lazy split view/begin") (C++20)  |  returns an iterator to the beginning   
(public member function)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/adaptor/dsc_begin&action=edit)  
[ end  ](/w/cpp/ranges/lazy_split_view/end "cpp/ranges/lazy split view/end") (C++20)  |  returns an iterator or a sentinel to the end   
(public member function)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/adaptor/dsc_end&action=edit)  
  
#####  Inherited from  [ std::ranges::view_interface
](/w/cpp/ranges/view_interface "cpp/rang