Equality preservation of both
rangesβ::βbegin and
rangesβ::βend enables passing a range whose iterator
type models
forward_iterator to multiple
algorithms and making multiple passes over the range by repeated calls to
rangesβ::βbegin and
rangesβ::βend. Since
rangesβ::βbegin is not required to be equality-preserving
when the return type does not model
forward_iterator,
it is possible for repeated calls
to not return equal values or to not be well-defined
.