- 1 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 20:16:30 ]
- プログラミング言語 D (D Programming Language) について語るスレッドです。
過去スレは >>2 ■本家 ttp://www.digitalmars.com/d/ ttp://www.kmonos.net/alang/d/ (和訳) ■コンパイラ ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家) ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド) ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ) ■参考URL ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究) ttp://dsource.org/ (dsource) ttp://www.sun-inet.or.jp/~yaneurao/dlang/ ttp://wisdom.sakura.ne.jp/programming/d/
- 166 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 13:16:58 ]
- 2.0 ちょっと使ってみた感じ
・doxygen 未対応(const な引数、戻り値を使うと正常にパースできない)。 ・各種ポーティングを2.0用に(若干)修正必要。 ・各種ポーティングに渡す時にキャストが必要。 例えばtoUTF16z()などの戻り値が(const wchar*)だけどポーティングのほうは(wchar*)なのでcast(wchar*)が必要 ・文字列リテラルが invariant なchar[] なので char[] s = "hoge"; とかやってると修正が必要。 だった。文字列リテラルはともかく、各ツールやライブラリが2.0用に対応してないと面倒くさくて適わない。 結局1.0に戻った。const/invariant/final は1.0に初めから欲しかったなぁ。
- 167 名前:166 mailto:sage [2007/10/14(日) 13:20:23 ]
- あと不安定だった。bindings の win32 は修正しないと無限ループ突入したし。
- 168 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 13:47:48 ]
- constといえば、
const(C) c; //Cはクラス というメンバ変数に代入しようと思ってもできない(言語仕様上できるはず)とか、 メンバ関数でfinal constってできないこととか、 「一度初期化したら変更しない。初期化はコンストラクタじゃないメンバ関数で行う」 ということをしたいときに、finalが使えないこととか、 使いにくい点が多数。 将来なんとかなるのかな。 あと、「あるオブジェクトが別のオブジェクトの参照をもつ」ということをたまにするけど、 そのとき、別のオブジェクトを変更しないときはそれにconstを付けたいと思うのが普通だと思う。 で、そうするとその別オブジェクトに含まれるポインタには全部constが付いてしまう。 例えば、別オブジェクトにHWND型の変数があって、それを取り出してAPI関数に 入れるときには、constが付いてしまっている。 何が言いたいのかというと、win32のバインディングを完全にD2.0に対応しようとするならLPCSTRをconst付きにするだけでは駄目だということ。 ポインタ型を引数に取る全ての関数について、正しくconstをつけないといけない。 でも正直、win32をポーティングしてる人たちがここまでやるとは思えないし、なんかconst周りは絶望感しか感じない。
|

|