dmd 2.029!

http://www.digitalmars.com/d/2.0/changelog.html#new2_029
ここでも喜びを表現.前回公開されたAndrei's Phobosが導入されてstd.regexとかstd.rangeとかが使えるようになった.それに加えてtemplate function literalも使えるように(でも例がないのでよく分からないw).parse.cに"it's a template 'literal'"というコメントが書かれてる部分とかあるのだけど,フロントエンドを読んでない俺には辿れないという罠.MLに目を光らせておく.

追記

Walterのサンプルを見ると

void foo(alias f)()
{
    f(3, 4);
    // writefln(f(3, 4)); コンパイルエラー
    // writefln(typeid(typeof(a))); コンパイルエラー
}

foo!((x, y) { return x * y;})();

と書けるものらしい.これはうむむ.Danielが書いてた

alias (T)(T a, T b) { return (a + b) / 2.0; } average;

の方がそれっぽい気がするw

追追記

stringとかだと動くw

void bar(alias f)()
{
    writefln(f("bar")); //-> bar
}

bar!((str) { return str; })();

結構バギーな気がする単なる俺の知識不足でした

追追追記

http://lists.puremagic.com/pipermail/digitalmars-d-announce/2009-April/012769.html
これだと動くのか.違いがよく分からないよ!よく見たらwriteflnじゃなくてwritelnでした.