enumerating member offsetofs via foreach over members-tuple
Denis Koroskin
2korden at gmail.com
Fri Nov 14 12:55:08 PST 2008
I'm doing some meta stuff and came across a few problems.
First of is described here:
http://d.puremagic.com/issues/show_bug.cgi?id=2454
Second one is slightly different and this time I am less sure whether it
is a bug.
The following code is indetended to print offsets of all its members:
struct Test
{
short s;
int i;
float f;
double d;
void test()
{
writefln("expected output:");
writefln( cast(char*)&s - cast(char*)this ); //
writefln(s.offsetof);
writefln( cast(char*)&i - cast(char*)this ); //
writefln(i.offsetof);
writefln( cast(char*)&f - cast(char*)this ); //
writefln(f.offsetof);
writefln( cast(char*)&d - cast(char*)this ); //
writefln(d.offsetof);
writefln("actual output:");
foreach (m; this.tupleof) {
// writefln(m.offsetof); // Error: no property 'offsetof' for
type 'short'
writefln( cast(char*)&m - cast(char*)this);
}
}
}
expected output:
0
4
8
16
actual output:
-52
-48
-44
-40
Am I doing something wrong?
More information about the Digitalmars-d
mailing list