cpp/ranges/lazy split view/outer iterator

The return type of, and of when the underlying view is a  and.

If either or  is not a simple view (e.g. if  is invalid or different from ),  is true for iterators returned from the const overloads, and false otherwise. If is a simple view,  is true if and only if  is a.

The name of this class template (shown here as ) is unspecified.

Data members
Typical implementations of hold two or three non-static data members:
 * A pointer of type to the parent ranges object (shown here as  for exposition only).
 * An iterator of type (shown here as  for exposition only) into the underlying ; present only if  models.
 * A boolean flag (shown here as for exposition only) that indicates whether an empty trailing subrange (if any) was reached.