Wait, what? What is AliasSeq?

Steven Schveighoffer via Digitalmars-d digitalmars-d at puremagic.com
Thu Jul 9 04:56:35 PDT 2015


On 7/9/15 4:54 AM, "Marc =?UTF-8?B?U2Now7x0eiI=?= <schuetzm at gmx.net>" wrote:
> On Wednesday, 8 July 2015 at 18:01:36 UTC, Steven Schveighoffer wrote:
>> On 7/8/15 1:44 PM, Timon Gehr wrote:
>>> On 07/08/2015 11:38 AM, "Marc =?UTF-8?B?U2Now7x0eiI=?=
>>> <schuetzm at gmx.net>" wrote:
>>>>
>>>>
>>>> I like "AliasTuple" as suggested by Martin, although it isn't a perfect
>>>> fit either when you think of `alias` template params, which don't match
>>>> `int`, while `int` can be an element of a TypeTuple.
>>>
>>> But this works: alias Int = int;
>>>
>>> The right fix for this issue is to fix the language. This does not make
>>> any sense.
>
> Of course, but I thought that was out of question. However...
>
>>
>> Yes, Walter at dconf also (I think) agreed this at least needs to be
>> fixed:
>
> .... that's nice to hear!

After the last talk (I think) David Nadlinger went around with a 
hand-written piece of code that did something similar to what I wrote 
and asked everyone whether it should compile or not. Both Walter and I 
said it should (I thought alias works as long as you are passing a 
*symbol* and not a keyword, and Int is a symbol). But it doesn't because 
T!(Int) and T!(int) are considered the same template instantiation.

Only I think 2 people correctly realized it was currently invalid. 
Taking a look through phobos, you will see all kinds of duplicate 
templates, one that is SomeTemplate(alias T) and one that is 
SomeTemplate(T) (which do the same thing), just for this limitation. I 
think it's a huge waste of code space and mental confusion.

> Then I think we should definitely go with "AliasTuple".

Yeah, I have been thinking AliasTuple is likely the best name. It goes 
right along with "type tuple" and "expression tuple". If we were 
designing from scratch, I'd say this thing is called Tuple, and 
std.typecons.Tuple would be ExpressionTuple.

-Steve


More information about the Digitalmars-d mailing list