Hello, alias void function (int) F; alias void delegate (int) D;
void fnFunc (F f, int i) {f(i);} void dgFunc (D d, int i) {d(i);} void writeOut (int i) {writeln(i);} void test () { void writeIn (int i) {writeln(i);} fnFunc(&writeOut, 1); dgFunc(&writeIn, 1); //~ fnFunc(&writeIn, 1); // error (expected a func, got a delegate...) //~ dgFunc(&writeOut, 1); // error (... and conversely) } If a function is defined at the module's toplevel and then passed (via a pointer) to a higher-order func that expects a function, al works fine. But if it is defined inside a function, then the pointer is automatically typed as delegate, even if the function does not use any variable in scope, and I get an error. Conversely, if the higher order func is defined to expect a delegate, then it fails if I pass a func defined at the top-level. How to solve this? Denis -- -- -- -- -- -- -- vit esse estrany ☣ spir.wikidot.com