Call delegate from C++
Jacob Carlborg
doob at me.com
Wed Apr 24 17:38:00 UTC 2019
On 2019-04-24 18:20, Nicholas Wilson wrote:
> How do you pass a delegate to a c++ function to be called by it?
>
> The function to pass the delegate to is:
>
> extern (C++) int
> fakeEntrypoint(
> extern(C++) void function(void* /*delegate's context*/) func,
> void* /*delegate's context*/ arg);
>
>
> What I want is:
>
> int entrypoint(scope void delegate() func)
> {
> return fakeEntrypoint(
> // for some reason func.funcptr is void function()
> cast(void function(void*))func.funcptr,
> func.ptr);
> }
>
> but that fails with
>
> cannot pass argument cast(void function(void*))func.funcptr of type
> void function(void*) to parameter extern (C++) void function(void*) func
You probably need to include `extern(C++)` in the cast, if that's possible.
--
/Jacob Carlborg
More information about the Digitalmars-d-learn
mailing list