On Tuesday, 12 July 2016 at 22:55:05 UTC, Adam Sansier wrote:
So, the problem now, is how to take the interface, which is simple, no implementation, and either create the implementation or create a sort of simple empty proxy that can be used to instantiate the interface?


I mean automatically of course. I believe D already has some library solution for this but haven't looked them up yet.

Ok, Another hack:

                iInterface x;
                void** y = cast(void**)&x;
                *y = malloc(iInterface.sizeof);
                
                x.__vptr = cast(immutable(void*)*)(*ptr);
                x.func();

works.

x is the object of type iInterface. It has no object associated with it, basically create one using malloc and set it's vtable.

this avoids the need to create the class.



Reply via email to