Хорошо, что здесь лучше, чтобы избежать двусмысленности?
template <class T>
inline void swap(T &a, T &b)
{
T c; c = a; a = b; b = c;
}
/* blah blah blah (inside of a function:) */
for (itv = vals.begin(); itv != vals.end(); ++itv)
{
if (at < (*itv)) { swap(at, (*itv)); }
if (at % (*itv) == 0) atadd = false;
}
/* blah blah blah */
Вызов со свопом тоже не работает, так как он не может определить, является ли это «void swap (T &, T &)», «void std :: swap (_Ty &, _ Ty &)» или .. .
Кстати, это вектор :: iterator.
Thx.