Call a function with a function pointer

Dicebot public at dicebot.lv
Thu Oct 10 07:28:19 PDT 2013


On Thursday, 10 October 2013 at 14:13:47 UTC, Namespace wrote:
> I have this function:
> ----
> void foo(T)(void function(T*) test) { }
> ----
>
> And want to call it with a C function:
> ----
> foo!(SDL_Surface)(SDL_FreeSurface);
> ----
>
> but I get:
> Fehler	1	Error: foo (void function(SDL_Surface*) test) is not 
> callable using argument types (extern (C) void 
> function(SDL_Surface*) nothrow)
>
> What would be the smartest solution?

Wrap it in a lambda. Or change foo() signature to accept 
`extern(C)` functions - you can't just mix calling convention.


More information about the Digitalmars-d-learn mailing list