You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CODE:
------snip------
import std.stdio;
void listMembers(T)() {
writefln("Size of %s is %d", T.stringof, T.sizeof);
foreach (field; __traits(allMembers, T)) {
writefln("\t%s", field);
}
}
void main() {
int y=1;
struct S1 {
int x;
}
static struct S2 {
int x;
bool opEquals() { return true; }
}
struct S3 {
int x;
bool opEquals() { return true; }
}
struct S4 {
int x;
bool opEquals() { return y==1; }
}
listMembers!S1();
listMembers!S2();
listMembers!S3();
listMembers!S4();
}
------snip------
OUTPUT:
------snip------
Size of S1 is 4
x
Size of S2 is 4
x
opEquals
Size of S3 is 16
x
opEquals
this
Size of S4 is 16
x
opEquals
this
------snip------
S3 is identical to S2 (except for the 'static' qualifier); DMD should not insert the frame pointer since it's not needed.
According to TDPL, the frame pointer is only inserted where needed.
The text was updated successfully, but these errors were encountered:
hsteoh reported this on 2013-07-09T11:21:21Z
Transferred from https://issues.dlang.org/show_bug.cgi?id=10585
Description
CODE: ------snip------ import std.stdio; void listMembers(T)() { writefln("Size of %s is %d", T.stringof, T.sizeof); foreach (field; __traits(allMembers, T)) { writefln("\t%s", field); } } void main() { int y=1; struct S1 { int x; } static struct S2 { int x; bool opEquals() { return true; } } struct S3 { int x; bool opEquals() { return true; } } struct S4 { int x; bool opEquals() { return y==1; } } listMembers!S1(); listMembers!S2(); listMembers!S3(); listMembers!S4(); } ------snip------ OUTPUT: ------snip------ Size of S1 is 4 x Size of S2 is 4 x opEquals Size of S3 is 16 x opEquals this Size of S4 is 16 x opEquals this ------snip------ S3 is identical to S2 (except for the 'static' qualifier); DMD should not insert the frame pointer since it's not needed. According to TDPL, the frame pointer is only inserted where needed.The text was updated successfully, but these errors were encountered: