Introspection

BCS ao at pathlink.com
Tue Sep 23 15:32:04 PDT 2008


Reply to Sean,

> Does anyone know a way to determine the type and offset of
> class/struct members?
> It seems we already have all the necessary pieces, but I haven't been
> able to get it
> to work thus far.  What I'm thinking of is something like this:
> import std.stdio;
> 
> class C
> {
> int i;
> void* p;
> }
> void main()
> {
> foreach( e; typeof(C.tupleof) )
> writefln( e.stringof, " ", e.offsetof );
> }
> However, offsetof doesn't appear to work on the members of this
> TypeTuple, nor on an instance tuple.  I've also tried various attempts
> at printing the address or value of the instance tuple, with no
> success.
> 
> Sean
> 

import std.stdio;

class C
{
int i;
void* p;
}

void main()
{
C c = new C;
foreach( i,e; c.tupleof )
writefln( typeof(e).stringof, " ", c.tupleof[i].offsetof );
}





More information about the Digitalmars-d mailing list