forked from dlang/dlang.org
-
Notifications
You must be signed in to change notification settings - Fork 4
/
features2.dd
112 lines (95 loc) · 5.48 KB
/
features2.dd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
Ddoc
$(D_S D 2.0 の新機能,
$(P D 2.0 は D 1.0 と比べ、
言語の面でもライブラリの面でも大きく強化されています。
このリストには $(LINK2 changelog.html, バグフィックス)
や $(LINK2 http://www.digitalmars.com/d/1.0/changelog.html, 1.0 にも加えられた変更).
は含まれません。ソースコードの移植には、$(LINK2 D1toD2.html, D1 to D2 移植ガイド)
を参考にして下さい。
)
$(SECTION2 言語の変更点,
$(UL
$(LI クラスオブジェクトの $(CODE opAssign) は多重定義不可能となりました。)
$(LI 予約語 $(CODE pure) 追加)
$(LI $(LINK2 enum.html, enum) を拡張して
を拡張して記号定数の定義を可能としました。)
$(LI $(LINK2 struct.html#ConstStruct, const/immutable 構造体),
$(LINK2 class.html#ConstClass, クラス)
$(LINK2 interface.html#ConstInterface, インターフェイス) を追加)
$(LI $(LINK2 expression.html#IsExpression, $(I IsExpression)) に $(CODE const) と $(CODE immutable) を追加)
$(LI 型指定子 $(CODE typeof(return)) を追加)
$(LI *演算子を $(CODE opStar()) でオーバーロード可能に)
$(LI 完全なクロージャのサポート。)
$(LI $(CODE string), $(CODE wstring),
$(CODE dstring) を全て immutable な定義に変更).
$(LI 関数とテンプレートの $(LINK2 function.html#overload-sets, オーバーロード集合) を追加)
$(LI $(D std.math.sin), $(D cos), $(D tan)
にコンパイル時定数を与えるとコンパイル時評価されるようになりました)
$(LI $(SINGLEQUOTE プラグイン) 用に $(LINK2 cpp_interface.html, C++インターフェイス) を追加)
$(LI $(LINK2 expression.html#IsExpression, $(I IsExpression))
の結果型を
$(CODE int) から $(CODE bool) に変更)
$(LI 任意指定の $(I TemplateParameterList) を $(LINK2 expression.html#IsExpression, $(I IsExpression)) に追加)
$(LI $(CODE override) が無かったときの警告を追加)
$(LI 新しい文字列リテラル構文 (デリミタ, ヒアドキュメント, Dトークン) を追加)
$(LI $(CODE __EOF__) トークンを追加)
$(LI $(LINK2 version.html#PredefinedVersions, $(B D_Version2))
定義済み識別子を追加して、D 2.0 コンパイラでコンパイラされていることを識別可能にしました)
$(LI 配列のimmutableなコピーを作るための $(CODE .idup)
プロパティを追加。)
$(LI 推移的 const と immutable を導入)
$(LI $(CODE in) パラメタ記憶域クラスを scope const の意味としました)
$(LI class と struct の invariant 宣言に () が必須となりました)
$(LI $(CODE isSame), $(CODE compiles) を $(D_KEYWORD __traits) に追加)
$(LI $(LINK2 statement.html#ForeachRangeStatement, ForeachRangeStatement) 文を追加)
)
)
$(SECTION2 Phobos ライブラリの変更点,
$(UL
$(LI $(LINK2 phobos/std_algorithm.html, std.algorithm): 新モジュール)
$(LI std.bitarray: 非推奨となる予定)
$(LI $(LINK2 phobos/std_bitmanip.html, std.bitmanip): std.bitarryの内容に加え、bitfields, FloatRep, DoubleRep テンプレートを提供する新モジュール)
$(LI $(LINK2 phobos/std_contracts.html, std.contracts): 新モジュール)
$(LI $(LINK2 phobos/std_conv.html, std.conv):
$(CODE parse) と $(CODE assumeUnique) を追加。
$(CODE conv_error)
を変換対象の型でパラメタ化されたテンプレートに変更。
その他大量の機能追加)
$(LI $(LINK2 phobos/std_file.html, std.file): $(CODE dirEntries) 追加)
$(LI $(LINK2 phobos/std_format.html, std.format):
writef* に raw('r') 書式指定を追加)
$(LI $(LINK2 phobos/std_functional.html, std.functional): 新モジュール)
$(LI $(LINK2 phobos/std_getopt.html,std.getopt): 新モジュール)
$(LI std.hiddenfunc: 新モジュール)
$(LI $(LINK2 phobos/std_math.html, std.math): nextafter を全ての浮動小数点数型に使えるようにしました。approxEqual テンプレートを追加。)
$(LI $(LINK2 phobos/std_numeric.html, std.numeric): 新モジュール)
$(LI $(LINK2 phobos/std_path.html, std.path):
$(CODE rel2abs) (Linux版のみ) 追加。
basename と dirname 関数
(getBaseName と getDirectoryName の別名) 追加)
$(LI $(LINK2 phobos/std_process.html, std.process):
Linux版で getpid を使えるように)
$(LI $(LINK2 phobos/std_stdio.html, std.stdio):
$(CODE writeln()) と $(CODE write()) を追加。
$(CODE writef()) は書式指定を使える箇所を第一引数のみに制限。
$(CODE readln) で行終端を指定可能にしました。
関数 $(CODE fopen), $(CODE popen),
$(CODE lines), $(CODE chunks) を追加)
$(LI $(LINK2 phobos/std_string.html, std.string):
関数 munch, chompPrefix を追加)
$(LI $(LINK2 phobos/std_random.html, std.random):
乱数生成エンジンと乱数分布の追加。大きな変更です。)
$(LI $(LINK2 phobos/std_traits.html, std.traits): 新モジュール)
$(LI $(LINK2 phobos/std_typecons.html, std.typecons): 新モジュール)
$(LI $(LINK2 phobos/std_variant.html, std.variant): 新モジュール)
$(LI Tango GC との構造的な差を取り込み (まだまだ途中です))
$(LI Phobos の $(D linux.mak) を書き直して、ドキュメントのビルドロジックを追加)
$(LI $(B next) メンバを $(B Object.Error) から $(B Object.Exception) に移動)
$(LI Linux版のライブラリ名を $(B libphobos.a) から $(B libphobos2.a) に変更)
)
)
)
Macros:
TITLE=D 2.0 の新機能
WIKI=D2Features
CATEGORY_FEATURES=$0