...ing logging 4.0

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

std.bind for D2.0 (4)

動かないパターンを見つけてしまった.

import std.bind, std.stdio;
void main()
{
    int foo(int i) {return i*2;}
    int bar(int i) {return i*3;}
    auto fooBar = bind(&foo, bind(&bar, _0));
    
    //これなら動くが
    //auto fooFooBar = bindAlias!(foo)(bind(fooBar.ptr, _0));
    //こうすると動かない
    auto fooFooBar = bindAlias!(foo)(bindAlias!(fooBar)(_0));
    writefln(fooFooBar(5));
}

今のままでも bind を使えば何段階でも合成できるんだけど,どうせなら bindAlias で合成できるようにしたいなあ.
どうしたものかな.
とりあえずこの件はこれで一旦終了.