Changed "op=" to just "op" for template argument to opOpAssign
bool opOpAssign( string Ts )( in Hoge val ) if( Ts == "^=" ){
などの "^=" は "^" でないと、演算子を呼んでいるところで Error
invariant( int )[] とかが Error、immutable( int )[] と修正が必要。
immutableを実装。
その他、This is a big change
があったらしく、バグが激増した?
- Windows版を使用するのにdmcのダウンロードは不要となりました。
alias thisを追加。
- ルートディレクトリを \dmd から \dmd2 に変更。
with文によるローカルシンボルを隠すシンボルの使用は許されなくなりました。final switch文追加。case range文追加。- 情報量の落ちる整数型の暗黙変換は、 許されなくなりました。
return文がない場合は警告ではなくエラーとなりました。
- 静的配列は参照渡しではなく値渡しされるようになりました。
- 条件演算子式 ?: の結果を変更可能な左辺値とすることが可能になりました。
- 配列リテラル から推論される型は、静的配列ではなく、動的配列となりました。
- 配列や連想配列リテラルの型は、先頭要素の型ではなく、 全要素に ?: した型を使うようになりました。
auto ref関数 を追加。- 関数テンプレート
auto ref引数。
interfaceのメンバ関数に契約を書けるようになりました。- 新しい演算子オーバーロードの制度を採用。
mixinテンプレートの定義にはmixinという修飾が必要になりました。!in演算子を追加。
大歓迎の追加機能です。
構造体は C言語 との互換性が必要だったり位置付けが微妙で、妙にマニアックな感じです。配列もそうですが、もう少し優しく(?)なって欲しいかな?あくまで個人的に・・・
C++ みたいに構造体もクラスも同じになってしまうと何の意味もありませんが、多分それは大丈夫でしょう。
どちらにしても、更新の間隔も長く "Bugs Fixed" 中心で良い感じ。
個人的には -w スイッチon でも 常に 警告表示のみでコンパイルは通って欲しい。
構造体の仮想継承?とってもうれしい追加機能ですが、試験的な追加?って怖いんですけど・・・
2.0 にあわせて作っていたプログラムが 2.010 辺りから頓挫。この追加を見てから静観中。
2010年6月14日