2009-09-08 9 views
8

Estoy bastante frustrado. Estoy usando Delphi 2009 y estaba muy contento con la inclusión de los genéricos en esta versión de Delphi. Todo funcionó muy bien al principio, pero ahora que uso genéricos en todo el lugar me encuentro con un problema tras otro, la mayoría de las veces algunos errores internos, donde ni siquiera veo exactamente dónde están causados. Intenté reestructurar el código varias veces para evitar los problemas con los genéricos, pero siempre encuentro nuevos problemas más adelante.¿Los genéricos en D2009 se pueden usar en proyectos grandes?

Ahora decidí eliminar todos los genéricos y usar algunos moldes dinámicos para especializar mis clases. No estoy muy emocionado al respecto, pero simplemente no veo otra opción. No puedo pasar el día rastreando los errores del compilador interno de Delphi ...

¿Alguien está usando genéricos en un proyecto grande sin tener que enfrentarse a tales problemas? ¿Es culpa mía quizás? ¿O simplemente no es posible usarlos en proyectos complejos?

Espero que D2010 corrija todo esto.

+1

¿Ouch ... errores internos del compilador? Eso definitivamente es un gran no-no para Delphi. No he usado Delphi durante 10 años más o menos, pero lo que dices parece horrible. –

+0

Con la presentación de Delphi 2 (hace mucho tiempo), que fue la primera versión de Delphi con un compilador de 32 bits, también tuve un montón de errores internos. Parece que Borland/Inprise/... tiene problemas para enviar nuevas características bien probadas en las nuevas versiones de sus compiladores. – Lucero

+2

Este no es un foro de discusión. ¿Tienes una pregunta de programación real? – Argalatyr

Respuesta

12

Estoy usando genéricos extensamente en Delphi 2009, y puedo decir que no es fácil, ya que a menudo se requiere trabajar con un ICE. Peor aún, los genéricos incluso se equivocan con el enlazador, es decir, no se pueden usar realmente en paquetes (a excepción de los paquetes de C++ Builder).

Parece que todo este problema desapareció en Delphi 2010; Casi nunca vi un ICE debido a los genéricos. Necesito mi código para trabajar tanto con 2009 como con 2010 :(

7

El soporte genérico en D2009 fue realmente malo al principio. La actualización 3 soluciona muchas cosas, pero no todo, y deja al menos un error grave en Generics. Collections.pas. De alguna manera, en realidad empeoró, ya que ahora, en lugar de darle un error de sintaxis cuando el compilador se ahoga en algún constructo genérico, a menudo obtendrá un error interno del compilador y no sabrá qué lo está causando.

Se ha mejorado bastante para 2010. Todavía hay algunos problemas relacionados con los genéricos en casos bastante oscuros, pero en general son seguros de usar siempre y cuando no uses paquetes ni pongas genéricos dentro de la clase ayudantes o cosas raras como esa.

En pocas palabras: si desea utilizarlos, actualice a 2010.

Cuestiones relacionadas