Introspection

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


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 );
}





More information about the Digitalmars-d mailing list