On Wednesday, 15 July 2015 at 21:44:37 UTC, Timon Gehr wrote:
On 07/15/2015 05:35 PM, Dicebot wrote:
On Wednesday, 15 July 2015 at 15:29:25 UTC, Andrei Alexandrescu wrote:
It doesn't confuse me. We have type tuples and expression tuples defined in the spec. An alias tuple can have both expressions and types. It's not that confusing. What was confusing is that a TypeTuple was not a
type tuple as defined in the spec.

I agree.

Andrei

I want to point out that statement "an alias tuple can have both expressions and types" is somewhat between imprecise and just wrong with current compiler implementation. `X!(42, int, foo)` doesn't hold aliases to value, type and symbol (assuming X(T...)) - it does hold actual value and type, with only symbol being aliased. Actual alias tuple would be defined as `X(alias a, alias b, alias c)` and is somewhat different thing.

You may want to ignore that difference for simplicity sake but it needs
to be explicitly acknowledged.

It should instead be acknowledged that there /should/ be no difference in what three things can be passed to X(T...) and X(alias a, alias b, alias c). The X(T...) if(T.length==k) pattern is ridiculous.

I can't agree more.

Reply via email to