Ellery Newcomer: > weird error. anyone know what's going on?
It's a good error message. In DMD 2.056head gives an even better error message: test6.d(8): Error: function test6.X.tt (int function(const const(char*)) xz) is not callable using argument types (extern (C) int function(const const(char*) s)) test6.d(8): Error: cannot implicitly convert expression (& puts) of type extern (C) int function(const const(char*) s) to int function(const const(char*)) But the error message is not good enough yet, because "const const(char*)" needs to be written "const(char*)". ---------------------- Andrej Mitrovic: > I think this is a side-effect of the new function pointer fixes, where > you now can't implicitly convert an extern(C) function to an extern(D) > function by accident (and that's a good thing). I think it didn't perform a conversion, it just used to produce wrong code. > But the problem is, > you can't define a function with a different linkage type inline as a > type parameter. Is this in Bugzilla already? ---------------------- Ellery Newcomer: > wait, are there explicit ways to convert extern(C) funcs <-> extern(D) funcs? Maybe a new future job for std.conv.to? (to convert a extern(C) func ponter to extern(D) func pointer). Bye, bearophile