Wait, what? What is AliasSeq?

Timon Gehr via Digitalmars-d digitalmars-d at puremagic.com
Wed Jul 15 14:44:36 PDT 2015


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.


More information about the Digitalmars-d mailing list