offsetof fails when parameter to a template
Mark Guidarelli
guido at grumpy-cat.com
Mon Feb 5 23:10:05 PST 2007
When I change line 20 to "output((foo!(int)).b.offsetof);" it compiles properly. Looking at the grammar I believe the original version was valid though.
import std.stdio;
struct foo(T) {
int a;
T b;
int c;
}
void output(int offset) {
writefln("offset = ", offset);
}
void main() {
// works
alias foo!(int) bar;
output(bar.b.offsetof);
// fails
// test.d(20): Error: 'this' is only allowed in non-static member functions, not main
// test.d(20): Error: this for b needs to be type foo not type int
output(foo!(int).b.offsetof);
}
More information about the Digitalmars-d-bugs
mailing list