Otherwise, if bool(ranges::begin(t)== ranges::end(t))
is a valid expression and
the type of ranges::begin(t) models forward_iterator,
ranges::empty(E) is expression-equivalent to
bool(ranges::begin(t)== ranges::end(t)).
Diagnosable ill-formed cases above
result in substitution failure when ranges::empty(E)
appears in the immediate context of a template instantiation.