prova con questo:
codice:
 template<class T>
{
	//----
	// Classe basata sui puntatori che scambia 2 valori di qualsiarsi tipo
	//----
	void swap(T *a, T *b)
	{
		T tmp = *a;
		*a = *b;
		*b = temp;
	}
}