Am 10.10.2013 16:13, schrieb Namespace:
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?

If you can change the signature of foo just add a extern(c) to the function pointer declaration.

Otherwise just wrap the SDL_FreeSurface call into a delegate on the caller side.

--
Kind Regards
Benjamin Thaut

Reply via email to