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.

Reply via email to