namespace schultz { template < typename T > struct type_traits { }; template < typename I > inline void reverse(I a, I b) { while (a != b) { --b; if (a == b) break; ++a; }}} using namespace schultz; int A[1000000]; void dosch() { reverse(A, A + 1000000); }