V.148

D言語の新バージョン。
今回はなかなか破壊的な変更が多めです。
なんか無駄に長くなったので続きを読む記法を採用


マッチ演算子が速攻で削除されましたw
まぁ、微妙すぎるし削除も仕方が無いでしょう。


それとbitが基本型から削除されてboolが基本型になりました。
object.dのalias bit boolがalias bool bitになっただけで、
正直コードを書く人間にとっては大差ないです。


あとはif文での変数の宣言

if(x;cast(Hoge)y){
	//yがHoge型の時にxにそれを代入する
}

正直C++と同じ
if(auto x = cast(Hoge)y)
みたいに書ける方が自分としては嬉しいのですけど、この辺は慣れですかねぇ。


そしてforeachでの型推論(もどき)
foreach(x;array){...}
みたいにかけるようになりました。
ちなみにarrayがクラスの場合、opApplyの定義に合うように型が調整されます。

class X{
	int opApply(int delegate(inout char*,inout int)dg){
		char*p="Hello World";
		int size=11;
		return dg(p,size);
	}
}
void main(){
	foreach(x,inout y;new X)printf("%.*s",y,x);
}

opApplyだけ関数の引数の推論を行うのは差別だー
他の関数に渡すdelegateも引数の推論をしてくれー


あとはon_scope_*構文の追加。
これは予約語が長すぎて自分の脳内メモリに入りきらないので説明は省略。
try catch finallyの構文糖みたいなもんです。