Otherwise, if 
T is a class or enumeration type and
  
auto(begin(t))
  is a valid expression whose type models
  
input_or_output_iterator
  where the meaning of 
begin is established as-if by performing
  argument-dependent lookup only (
[basic.lookup.argdep]),
  then 
ranges::begin(E) is expression-equivalent to
  that expression
.