2009-09-08 7 views
8

Sono piuttosto frustrato. Sto usando Delphi 2009 ed ero molto felice dell'inclusione di generici in questa versione di Delphi. All'inizio tutto ha funzionato alla perfezione, ma ora che uso i farmaci generici dappertutto mi imbatto in problemi/problemi - il più delle volte errori interni, in cui non vedo nemmeno esattamente dove sono stati causati. Ho provato a ristrutturare il codice più volte per evitare problemi con i generici, ma ho sempre incontrato nuovi problemi in futuro.I Generics in D2009 sono utilizzabili in progetti di grandi dimensioni?

Ora ho deciso di rimuovere tutti i generici e utilizzare alcuni calchi dinamici per specializzare le mie classi. Non molto entusiasta, ma non vedo un'altra opzione. Non posso passare la giornata a rintracciare gli errori interni del compilatore di Delphi ...

Qualcuno usa i generici in un progetto di grandi dimensioni senza incorrere in tali problemi? È forse colpa mia? O semplicemente non è possibile utilizzarli in progetti complessi?

Spero che il D2010 risolva tutto questo.

+1

Ouch ... errori del compilatore interno? Questo è sicuramente un grande no-no per Delphi. Non ho usato Delphi per 10 anni o giù di lì, ma quello che stai dicendo sembra terribile. –

+0

Con l'introduzione di Delphi 2 (un po 'di tempo fa), che era la prima versione di Delphi con un compilatore a 32 bit, ho avuto anche un sacco di errori interni. Sembra che Borland/Inprise/... abbia problemi nella spedizione di nuove funzionalità testate nelle nuove versioni dei loro compilatori. – Lucero

+2

Questo non è un forum di discussione. Hai una vera domanda di programmazione? – Argalatyr

risposta

12

Uso generici in modo esteso in Delphi 2009 e posso dire che non è facile in quanto viene spesso richiesto di lavorare su un ICE. Ancor peggio, i generici addirittura rovinano il linker, cioè non si possono realmente usarli nei pacchetti (eccetto per i pacchetti C++ Builder).

Tutto questo problema sembra essere andato a Delphi 2010; Non ho quasi mai visto un ICE a causa dei farmaci generici. Ho bisogno del mio codice per funzionare sia con il 2009 che con il 2010 :(

7

Il supporto di Generics in D2009 all'inizio era molto brutto L'aggiornamento 3 risolve un sacco di cose, ma non tutto, e lascia almeno un bug grave in Generics. Collections.pas. In un certo senso, in realtà è peggiorato, poiché ora invece di darti un errore di sintassi quando il compilatore induce a soffocare qualche costrutto generico, avrai spesso un errore interno del compilatore e non sai cosa lo sta causando.

È stato migliorato un bel po 'per il 2010. Ci sono ancora alcuni problemi relativi ai generici in casi piuttosto oscuri, ma sono generalmente sicuri da usare purché non si utilizzino pacchetti o non si inseriscano i farmaci generici all'interno della classe aiutanti o cose strane del genere

In conclusione: se si desidera utilizzarli, eseguire l'aggiornamento al 2010.

Problemi correlati