If T is a specialization
of empty_view ([range.empty.view]),
then ((void)F, decay-copy(E)),
except that the evaluations of E and F
are indeterminately sequenced.
Otherwise, if T models
random_access_range and sized_range
and is a specialization of
span ([views.span]),
basic_string_view ([string.view]), or
subrange ([range.subrange]),
then
U(rangesβ::βbegin(E),
rangesβ::βbegin(E)+ stdβ::βmin<D>(rangesβ::βdistance(E), F)),
except that E is evaluated only once,
where U is a type determined as follows:
otherwise, if T is
a specialization of iota_view ([range.iota.view])
that models random_access_range and sized_range,
then
iota_view(*rangesβ::βbegin(E),
*(rangesβ::βbegin(E)+ stdβ::β min<D>(rangesβ::βdistance(E), F))),
except that E is evaluated only once.