D現状の引っかかりポイント

なんかいろいろ問題ばかりでるな。楽しいところでもありくだらないところでもあり。

  • interfaceが妙な動作を

インタフェースでインスタンスのリファレンスをつかんでいて、それをインスタンスの実クラスにキャスト、実クラスのpublicなメソッドやフィールドを触ると、Access Violationになる。おかげでインタフェースが使い物にならねえ。

interfaceの代わりにabstract classにすると問題なく触れるのがますます怪しい。

  • ファイル間依存関係が強すぎないか?

前に苦労してAntのbuild.xmlを書いて、修正されたDファイルのみ再コンパイルされるようにしたが、リンカが思ったほどよきにはからってくれない。あるファイルのどこからも呼ばれていないメソッドを1つ削除してコンパイル、リンクすると、Access Violationを起こすこともある。

インスタンスからstaticメソッドを呼ぼうとする(Foo.ffをfoo.ffで呼ぶ)とリンクに失敗する。普通こんなことしないから、基本的には呼べなくていいんだが、困ったことに

  • Classクラスがない

のでその代用としてインスタンスを渡して、そのstaticメソッドを呼びたいことがあるのだ。この辺はdelegateを使ってうまいことやるのかなあ。よく分からない。

  • arrayに対して.sizeとかやると

エラーにはならずに8とか帰ってくる。多分sizeof(array)。配列の長さは.length。いやこれはまったくもって正しい動作なのだが、JavaVector.size()とかと混同してよく間違えるんだよあ。