template void faulty_swap(InputIterator p, InputIterator q) { ? t = *p; // what should be the type of t ? *p = *q; *q = t; }