Le Sat, 29 Nov 2008 01:49:20 +0100, BCS <[EMAIL PROTECTED]> a écrit:
struct C(R, A...) { A args; R function(A) dg; static R delegate() opCall(R function(A) dg, A a) { C!(R, A) ret; ret.dg=dg; foreach(int i,_;A) ret.args[i] = a[i]; return &ret.fn; } R fn() { return dg(args); } } // test it import std.stdio; int delegate() dg(int i) {return C!(int,int)(function int(int j){return j;}, i); // <--- used here} void main() { auto d = dg(5); writef("%s\n", d()); }
Interesting code. Thanks!