Question about typeof(*this)
Ivo Kasiuk
i.kasiuk at gmx.de
Sun Oct 17 03:21:06 PDT 2010
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
More information about the Digitalmars-d-learn
mailing list