Improve this page
Github へのログインが必要です。
簡単な修正は、ここから fork、オンライン編集、pull request ができます。
大きな修正については、
通常の clone で行って下さい。
Page wiki
関連するWikiページを参照・編集
English
このページの英語版(原文)
D 2.0 の新機能
D 2.0 は D 1.0 と比べ、 言語の面でもライブラリの面でも大きく強化されています。 このリストには バグフィックス や 1.0 にも加えられた変更. は含まれません。ソースコードの移植には、D1 to D2 移植ガイド を参考にして下さい。
言語の変更点
- クラスオブジェクトの opAssign は多重定義不可能となりました。
- 予約語 pure 追加
- enum を拡張して を拡張して記号定数の定義を可能としました。
- const/immutable 構造体, クラス インターフェイス を追加
- IsExpression に const と immutable を追加
- 型指定子 typeof(return) を追加
- *演算子を opStar() でオーバーロード可能に
- 完全なクロージャのサポート。
- string, wstring, dstring を全て immutable な定義に変更 .
- 関数とテンプレートの オーバーロード集合 を追加
- std.math.sin, cos, tan にコンパイル時定数を与えるとコンパイル時評価されるようになりました
- ‘プラグイン’ 用に C++インターフェイス を追加
- IsExpression の結果型を int から bool に変更
- 任意指定の TemplateParameterList を IsExpression に追加
- override が無かったときの警告を追加
- 新しい文字列リテラル構文 (デリミタ, ヒアドキュメント, Dトークン) を追加
- __EOF__ トークンを追加
- D_Version2 定義済み識別子を追加して、D 2.0 コンパイラでコンパイラされていることを識別可能にしました
- 配列のimmutableなコピーを作るための .idup プロパティを追加。
- 推移的 const と immutable を導入
- in パラメタ記憶域クラスを scope const の意味としました
- class と struct の invariant 宣言に () が必須となりました
- isSame, compiles を __traits に追加
- ForeachRangeStatement 文を追加
Phobos ライブラリの変更点
- std.algorithm: 新モジュール
- std.bitarray: 非推奨となる予定
- std.bitmanip: std.bitarryの内容に加え、bitfields, FloatRep, DoubleRep テンプレートを提供する新モジュール
- std.contracts: 新モジュール
- std.conv: parse と assumeUnique を追加。 conv_error を変換対象の型でパラメタ化されたテンプレートに変更。 その他大量の機能追加
- std.file: dirEntries 追加
- std.format: writef* に raw('r') 書式指定を追加
- std.functional: 新モジュール
- std.getopt: 新モジュール
- std.hiddenfunc: 新モジュール
- std.math: nextafter を全ての浮動小数点数型に使えるようにしました。approxEqual テンプレートを追加。
- std.numeric: 新モジュール
- std.path: rel2abs (Linux版のみ) 追加。 basename と dirname 関数 (getBaseName と getDirectoryName の別名) 追加
- std.process: Linux版で getpid を使えるように
- std.stdio: writeln() と write() を追加。 writef() は書式指定を使える箇所を第一引数のみに制限。 readln で行終端を指定可能にしました。 関数 fopen, popen, lines, chunks を追加
- std.string: 関数 munch, chompPrefix を追加
- std.random: 乱数生成エンジンと乱数分布の追加。大きな変更です。
- std.traits: 新モジュール
- std.typecons: 新モジュール
- std.variant: 新モジュール
- Tango GC との構造的な差を取り込み (まだまだ途中です)
- Phobos の linux.mak を書き直して、ドキュメントのビルドロジックを追加
- next メンバを Object.Error から Object.Exception に移動
- Linux版のライブラリ名を libphobos.a から libphobos2.a に変更