2009-09-08 12 views
8

私はかなり不満です。私はDelphi 2009を使用しており、このバージョンのDelphiにジェネリックスを含めることについて非常に満足しています。最初はすごくうまくいっていましたが、問題の後で私が問題に遭遇した場所でジェネリックスを使用するようになりました。ほとんどの場合、内部エラーが発生しています。私はジェネリックの問題を避けるためにコードを複数回再構築しようとしましたが、常に新しい問題に突き当りました。D2009のジェネリックは大きなプロジェクトで使用できますか?

今、ジェネリックをすべて削除し、クラスを特化するためにダイナミックキャストを使用することにしました。それほど興奮しているわけではありませんが、別の選択肢はありません。私は、このような問題に実行せずに

誰もが大規模なプロジェクトにジェネリックを使用している... Delphiの内部コンパイラエラーを追跡する私の一日を過ごすことができませんか?おそらくそれは私のせいでしょうか?複雑なプロジェクトでそれらを使用することはできませんか?

D2010でこれらすべての問題が解決されることを願っています。

+1

内部コンパイラエラー?それは間違いなくデルファイにとって大きなノー・ノーです。私は10年ほどDelphiを使用していませんが、あなたが言っていることはひどいようです。 –

+0

32ビットコンパイラを使用したDelphiの最初のバージョンであるDelphi 2(ロングタイム)を導入したことで、内部エラーも多かったです。 Borland/Inprise/...のように、新しいバージョンのコンパイラで十分にテストされた新機能を出荷することに問題があります。 – Lucero

+2

これはディスカッションフォーラムではありません。本当のプログラミングに関する質問がありますか? – Argalatyr

答えて

12

私はDelphi 2009で広範にジェネリックスを使用していますが、しばしばICEを回避する必要があるので簡単ではないと言えます。さらに悪いことに、ジェネリックスはリンカを混乱させます。つまり、C++ Builderパッケージを除いて実際にはそれらをパッケージで使用することはできません。

このすべての問題は、Delphi 2010ではなくなっているようです。ジェネリック医薬品のためにICEを見たことはほとんどありません。私はD2009で:(

7

ジェネリックのサポートは最初は本当に悪かったものの3つの修正たくさんのではなく、すべてを更新します。2009年と2010年の両方で動作するように私のコードを必要とし、ジェネリックに少なくとも一つの重大なバグを残します。 Collections.pas。いくつかの点では、実際には悪化しました。コンパイラがいくつかの一般的な構文でチョークするときに構文エラーを出すのではなく、内部コンパイラエラーが発生し、その原因を知らないことがあります。

2010年はかなり改善されています。あまりにも曖昧なケースではまだジェネリック関連の問題がいくつかありますが、パッケージを使用していないか、ヘルパーやそのような奇妙なもの。

要約:使用する場合は、2010にアップグレードしてください。

関連する問題