Trass3r Wrote:

> I already read about "Implicit Template Properties":
> If a template has exactly one member in it, and the name of that member 
> is the same as the template name, that member is assumed to be referred 
> to in a template instantiation
> 
> I guess the following is something similar, but why are aliases used here?
> 
> template ParameterTypeTuple(dg)
> {
>      static if (is(dg P == function))
>       alias P ParameterTypeTuple;
>      else static if (is(dg P == delegate))
>       alias ParameterTypeTuple!(P) ParameterTypeTuple;
>      else static if (is(dg P == P*))
>       alias ParameterTypeTuple!(P) ParameterTypeTuple;
>      else
>       static assert(0, "argument has no parameters");
> }


Without the alias you will be declaring a variable.
With it you are aliasing a type.

Reply via email to