Introspection

Sean Kelly sean at invisibleduck.org
Tue Sep 23 16:03:56 PDT 2008


== Quote from BCS (ao at pathlink.com)'s article
> Reply to Benjamin,
> > 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
> >>
> cleaner:
> import std.stdio;
> class C
> {
> int i;
> void* p;
> }
> void main()
> {
> foreach( i,e; typeof(C.tupleof) )
> writefln( e.stringof, " ", C.tupleof[i].offsetof );
> }

Huh, e.offsetof doesn't work but C.tupleof[i].offsetof does.  At least I
was close :-)  Thanks!


Sean



More information about the Digitalmars-d mailing list