Difference between template and mixin template

Just Dave abcdef at 1234.com
Thu Oct 10 15:59:58 UTC 2019


On Thursday, 10 October 2019 at 15:56:36 UTC, Just Dave wrote:
> I'm trying to get my head around mixing templates. I'm using it 
> as kind of a replacement for class inheritance as it seems to 
> fit better composition over inheritance. So I do something like:
>
>     mixin template NumberTemplate()
>     {
>     private:
>         int number = 0;
>     public:
>         int getNumber(int number)
>         {
>             return number;
>         }
>     }
>
>     interface INumber
>     {
>         getNumber(int number);
>     }
>
>     class Number : INumber
>     {
>         template NumberTemplate;
>     };
>
> So two questions:
>
> a) Is this correct usage?
>
> b) It compiles if I just do:
>
>     template NumberTemplate()
>     {
>     private:
>         int number = 0;
>     public:
>         int getNumber(int number)
>         {
>             return number;
>         }
>     }
>
> what is the difference between template and mixin template?

Sorry I messed up the above code example the following should 
look like:

     class Number : INumber
     {
         mixin NumberTemplate;
     };


More information about the Digitalmars-d-learn mailing list