Call a function with a function pointer
Namespace
rswhite4 at googlemail.com
Thu Oct 10 07:37:07 PDT 2013
On Thursday, 10 October 2013 at 14:26:37 UTC, Benjamin Thaut
wrote:
> 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.
You mean like this?
----
void foo(T)(extern(C) void function(T*) func) {
}
----
That prints: Error: basic type expected, not extern
More information about the Digitalmars-d-learn
mailing list