cpp/ranges/split view

@1@ takes a  and a delimiter, and splits the  into subranges on the delimiter.

@2@ . The expression is expression-equivalent to  for any suitable subexpressions  and.

models the concepts, and when the underlying   models respective concepts.

The inner range is a, which models , models  when  models , and models , , , and  when  models respective concepts.

Data members
Typical implementations of hold three non-static data members:
 * the underlying of type  (shown here as  for exposition only),
 * the pattern (shown here as for exposition only) that is used as a delimiter to split the underlying, and
 * an object equivalent to (shown here as  for exposition only) that caches the result of the first call to.