To iterate over an input stream, we would usually use a std::istream_iterator like so:
std::istream_iterator
typedef std::istream_iterator input_iterato
It doesn't matter whether they will be found by argument-dependent lookup, because you are allowed to put specializations of classes and functions in the std namespace.
std