Any chance to call Tango as Extended Standard Library

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sun Jan 18 13:31:46 PST 2009


Lars Ivar Igesund wrote:
> No, you misunderstand. I said safely call, not exceptionally
> efficient. To me a virtual call would be acceptable. However, at
> least in my cases, there would normally not be more than one
> imlemented interface and such it would be a tiny vtable.

Ok, so the scope is reducing nicely. We now have a few problems to solve 
(some details glossed over for simplicity).

a) Get from void* to the TypeInfo that's typing that void*. This will 
involve a search as the void* could point really anywhere, including 
untyped memory. So we have a core function:

TypeInfo fromAddress(void * p);

b) Starting from a TypeInfo, get an interface in case the underlying 
struct implements that interface:

Object TypeInfo.QueryInterface(TypeInfo someInterface);

c) Finally, given a void* and an interface, invoke a method of that 
interface:

T structCast!(Interface)(p).method(arguments);

where T is the result type of Interface.method.

Is this what you want?


Andrei



More information about the Digitalmars-d mailing list