choi heejo wrote: > hi there, please read this code: > > > import std.stdio; > > > struct test(T) > { > alias typeof(*this) type; > T a; > } > > > > > void main() > { > test!(int).type t; > > t.a = 123; > > writeln(t.a); > } > > > I guessed it would work. but the compiler said: > > > main.d(7): Error: can only * a pointer, not a 'test!(int)' > main.d(14): Error: template instance main.test!(int) error > instantiating > > > what is the problem? >
In D2, "this" in a struct is a reference type, not a pointer type. So just replace "typeof(*this)" by "typeof(this)" and then it should work. Ivo