dmd v0.165
ひゃっほー新バージョンは相変わらずヘンテコだなぁ。
とりあえず、boost::spiritっぽいコードが手軽に書けて素敵
id:shinichiro_h:20060822
最後に評価した値を返すifとかはテンプレート関数との併用でどうでしょ?
T if_(Pred,T)(Pred delegate()p,T delegate()t,T delegate()f){ return p()?t():f(); } void main(){ for(auto i =1 ;i<70;){ int x = i; i += if_(x > 50, (printf("A %d\n",x),1), (printf("B %d\n",x),x) ); } }
ただ、メンバテンプレート関数がDでは書けないので変態的な記法が書きにくいのが残念。