Sind Generics in D2009 in großen Projekten verwendbar?

8

Ich bin ziemlich frustriert. Ich benutze Delphi 2009 und war sehr glücklich über die Einbeziehung von Generika in diese Version von Delphi. Am Anfang hat alles super geklappt, aber jetzt, wo ich überall Generika benutze, stoße ich auf ein Problem nach dem anderen - meistens mit internen Fehlern, wo ich nicht einmal sehe, wo genau sie entstehen. Ich habe versucht, den Code mehrmals zu restrukturieren, um die Probleme mit Generika zu vermeiden, aber immer wieder neue Probleme zu lösen.

Jetzt habe ich beschlossen, Generika komplett zu entfernen und dynamische Klassen zu verwenden, um meine Klassen zu spezialisieren. Ich bin nicht besonders begeistert, aber ich sehe einfach keine andere Möglichkeit. Ich kann meinen Tag nicht damit verbringen, die internen Compilerfehler von Delphi aufzuspüren ...

Benutzt jemand Generika in einem großen Projekt, ohne auf solche Probleme zu stoßen? Ist es vielleicht meine Schuld? Oder ist es einfach nicht möglich, sie in komplexen Projekten zu verwenden?

Ich hoffe, D2010 behebt all diese Sachen.

    
jpfollenius 08.09.2009, 10:12
quelle

2 Antworten

12

Ich verwende Generika ausführlich in Delphi 2009, und ich kann sagen, dass es nicht einfach ist, da man oft einen ICE umgehen muss. Noch schlimmer ist, dass Generika sogar den Linker durcheinander bringen, d. H. Sie können sie nicht wirklich in Paketen verwenden (außer für C ++ Builder-Pakete).

All dieses Problem scheint in Delphi 2010 verschwunden zu sein; Ich sah kaum einen ICE wegen Generika. Ich brauche meinen Code jedoch sowohl für 2009 als auch 2010: (

    
Moritz Beutel 08.09.2009, 12:17
quelle
7

Die Unterstützung von Generika in D2009 war anfangs sehr schlecht. Update 3 behebt viele Dinge, aber nicht alles und hinterlässt zumindest einen ernsthaften Fehler in Generics.Collections.pas. In mancher Hinsicht wurde es sogar noch schlimmer, denn anstatt einen Syntaxfehler zu bekommen, wenn der Compiler an einem generischen Konstrukt erstickt, bekommen Sie oft einen internen Compilerfehler und Sie wissen nicht, was ihn verursacht.

Es wurde 2010 ein wenig verbessert. Es gibt immer noch ein paar Generika-Probleme in ziemlich obskuren Fällen, aber sie sind im Allgemeinen sicher zu verwenden, solange Sie keine Pakete verwenden oder Generika in Klassenhelfern einsetzen oder seltsame Dinge wie das.

Unterste Zeile: Wenn Sie sie verwenden möchten, aktualisieren Sie auf 2010.

    
Mason Wheeler 08.09.2009 12:47
quelle

Tags und Links