template struct vector { T* begin() { return nullptr; } T* end() { return nullptr; } }; template void stream_it(vector& t) { for(T& itr : t) { } } static int f() { vector xs; stream_it(xs); return 0; }