std::swap kan vist ikke bruges i denne sammenhæng; den ville swap'e de som argumenterne pegede på, ikke argumenterne selv, idet den er noget i stil med
template <class T> inline void swap(T& a, T& b) { T tmp(a); a = b; b = tmp; } (pakket passende ind i namespace std). Du kan så lave din egen udgave:
template <class T> inline void swap(T*& a, T*& b) { T* tmp(a); a = b; b = tmp; }
Fordelen ved dette (i forhold til void*) er at der laves statisk typecheck at a og b faktisk *har* samme type.
Grunden til at swap bytter om på pointerne og ikke det de peger på, er vel at jeg giver swap to pointere som argumenter. swap(T& t1, T& t2) bliver så til en reference til en pointer...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.