It's not possible to directly take an extern(C) function pointer as argument:
void receiveFunc(extern(C) void function() f); // error
extern(C) alias void function() Func;
void receiveFunc(Func f); // works
In my particular case it is problematic when I use std.traits.fullyQualifiedName (for later use in a mixin) on a function type which takes a C function, because it returns a string similar to the first example.
Comment #1 by andrej.mitrovich — 2013-08-17T07:54:52Z
*** This issue has been marked as a duplicate of issue 6754 ***