template void swap(T& par1,T& par2) { T temp = par1; // Der Kopierkonstruktor muss vorhanden sein par1 = par2; // Der Zuweisungsoperator muss vorhanden sein par2 = temp; } // Der Destruktor muss vorhanden sein, damit temp zerstört werden kann class Test { public: Test() { }; public: ~Test() { } Test& operator=(const Test& ) { return *this; } Test(const Test& ) { } private: }; int main() { char c1 = 1, c2 = 2; swap(c1,c2); Test t1,t2; swap(t1,t2); return 0; }