Man könnte zuerst eine allgemeine Procedure schreiben:
procedure MemSwap(a,b : Pointer, Size:Integer);
Damit kann man dann schreiben:
Delphi-Quellcode:
procedure SwapInt(var a,b: integer);
begin
MemSwap(@a, @b, sizeof(Integer));
end;
So kann man für andere Datentypen (double, Boolean, ...) dann weitermachen.
Spätestens aber bei Strings, dynamischen Arrays und Objekten versagt dann diese Methode.