On 02/24/2012 07:22 PM, simendsjo wrote:
I have a C function taking a callback function as a parameter. My thought was to wrap this up using a template, but I cannot get it to work:extern(C) alias void function() Callback; template Wrap(alias dg) { extern(C) void Wrap() { dg(); } } void main() { Callback cb = &Wrap!( () {} ); } Error: cannot implicitly convert expression (&Wrap) of type void delegate() pure nothrow @safe to extern (C) void function()
This is a bug. '() {}' should be inferred as void function()pure nothrow @safe. Workaround: The code compiles if you use function() {} instead. I don't know if a bug report exists already.
