struct inheritance

Bruno Medeiros brunodomedeiros+spam at com.gmail
Sat Sep 1 05:20:11 PDT 2007


Reiner Pope wrote:
> Bill Baxter wrote:
>> Let us all turn our copies of WalterAndrei.pdf to page 40 where yea 
>> verily it doth say:
>>
>>     struct M { int a; }
>>     struct S {
>>        M m;
>>        alias m this;
>>        int b;
>>     }
>>
>> Why not just allow mixin to do this?
>>
>>     struct M { int a; }
>>     struct S {
>>        mixin M;
>>        int b;
>>     }
>>
>> That's basically the way it's done now except now it would be more like:
>> template MMixin() { int a; }
>> struct M { mixin M; }
>> struct S { mixin M; int b; }
>>
>> Just let us treat a struct like a zero arg template for mixin purposes.
>>
>> --bb
> 
> Template mixins require that the sourcecode of the template is available 
> to the compiler. Aliases don't. In this sense at least, aliases are 
> cleaner.
> 
>  -- Reiner

Huh? Explain how the above alias example would work if the compiler 
doesn't know the source code of what is being aliased:

   struct M;
   struct S {
     M m;
     alias m this;
     int b;
   }

It's not even possible to declare m without knowing the source of M! 
Perhaps I misunderstood you?

-- 
Bruno Medeiros - MSc in CS/E student
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D



More information about the Digitalmars-d mailing list