Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#22

AW: Größe Exe-Datei XE2 -> XE4

  Alt 16. Mai 2013, 21:12
Bei den Generics hat sich geändert, dass ab XE3 die RTL und VCL von TList/TObjectList auf TList<Alle möglichen Klassen> umgestellt wurde. Das bedeutet, dass statt der einen TList/TObjectList Klasse nun um einiges mehr TList<T> herumschwirren, da der Compiler für jedes T eine eigene Kopie anfertigt.

Was früher eine einzige TList mit Typecasts war, ist jetzt TList<TAction>, TList<TComponent>, TList<TField>, TList<...>, ...

Codegenerier-technisch könnte man all die Listen wieder zu einer zusammenfassen, da keine dieser auf irgendwelche speziellen Eigenschaften der Klassen zugreift, also alle mit einem TList<TObject> abbildbar wären. Ein harter Typecast ist nämlich in wirklichkeit nur eine Uminterpretation der Daten, was in Fall von Objekt-Referenzen zu keinem einzigen Maschinencode-Byte führt.
Aber das wollen die für den Compiler Verantwortlichen nicht implementieren.
  Mit Zitat antworten Zitat