...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

前置/後置インクリメント

ああ,こういうことか.

int t;
writefln({return ++t;}());//1
assert(t==1);
writefln(++t);//2
assert(t==2);

int u;
writefln({return u++;}());//0
assert(u==1);
writefln(u++);//1
assert(u==2);

無名デリゲートの中身を実行してからwriteflnが評価されると思ってたのに.
コンパイル時に展開されてるのだろうか?
これはかなりややこしいなあ.

いや待てよ

この無名デリゲートはclosureだから・・・.
いやそれでもよくわからんw
誰か助けて!