isExpression with bool template parameter

Kenji Hara k.hara.pg at gmail.com
Thu Mar 28 06:24:51 PDT 2013


On Tuesday, 26 March 2013 at 14:26:59 UTC, cal wrote:
> I guess the tuple version is fine, it is just surprising that 
> only one of the three parameter types can be directly matched. 
> It is also surprising that this example from the docs works:

Because 'Tuple' is a template, not a type.
Please recall that:

struct Tuple(T...) { ... }

is a syntactic sugar of:

template Tuple(T...) { struct Tuple { ... } }

> alias Tuple!(int, string) Tup;
> static if (is(Tup : TX!TL, alias TX, TL...))
>
> (matching an alias) but the alias can't be directly matched 
> when it appears as a parameter of the type.

So, `alias TX` will bind the template Tuple. There is no problem.

Kenji Hara


More information about the Digitalmars-d-learn mailing list