Should this always work?
Ola Fosheim Grøstad
ola.fosheim.grostad at gmail.com
Tue May 4 10:03:43 UTC 2021
On Tuesday, 4 May 2021 at 01:20:15 UTC, Q. Schroll wrote:
> On Saturday, 1 May 2021 at 06:17:36 UTC, Mike Parker wrote:
>> On Saturday, 1 May 2021 at 04:55:10 UTC, frame wrote:
>>> I always thought as long as an object implements an
>>> interface, it should be able to cast it from a void* if it
>>> really points to a supporting object.
>>
>> No. An interface is like a pointer to a pointer.
>
> Can you elaborate on this one? I don't really get it. Is an
> object handle also like a pointer to a pointer? (I feel like I
> can learn something here.)
Off the top of my head the object layout is something like this:
{
pointer to vtable0 for the class;
monitor mutex stuff;
pointer to interface 1 vtable1;
pointer to interface 2 vtable2;
...
pointer to interface N vtableN;
object data 1;
object data 2;
...
}
A pointer to interface 1 is a pointer to the pointer to vtable1
in the object above.
More information about the Digitalmars-d-learn
mailing list