ああ,こういうことか.
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
誰か助けて!