Wie sieht es eigentlich mit dem "Nextgen"-Compiler aus? Da müsste doch für Klassen mittlerweile volle Operator-Überladung funktionieren, oder?
Theoretisch hätte es jetzt auch schon für Interfaces gehen können. Und ja, beim ARC (NextGen) könnte es funktionieren,
wenn die endlich mal meine Wünsche implementiert hätten, die seit Jahren im
QC rumgammeln.
Der Grund, warum es bei Klassen nicht geht/ging, liegt darin begründet, daß dort keine automatische Speicherverwaltung existiert.
Delphi-Quellcode:
x := a * b + c;
// oder
x := a + b + c;
// [add] und selbst das einfache Nächste geht nicht
x := a + b;
Hier würden ja temporäre Variablen/Instanzen erstellt.
- das Ergebnis von a*b und a+b
- und das Ergebnis von t+c
Aber keiner fühlt sich verantwortlich diese Instanzen freizugeben.
Und es gibt noch ein paar Problemchen, denn es gibt kein Copy-Event, auf welches man per Klassenoperator reagieren kann.
Bei
X := Y;
kann man mit Klassen und vorallem ohne Referenzzählung nichts richtig behandeln.
Ich hatte mal versucht Interfaces in den Operator-Record zu packen, aber das war eine Heiden Arbeit und so weit ich mich erinnere, gab es dennoch ein paar Problemchen. (wofür ich gerne das Copy-Event haben wollte)
[add]
http://www.delphipraxis.net/128555-i...athlib%5D.html