Wait, what? What is AliasSeq?

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Wed Jul 8 10:21:04 PDT 2015


On Wednesday, 8 July 2015 at 17:15:50 UTC, Timon Gehr wrote:
> On 07/08/2015 06:44 PM, Jonathan M Davis wrote:
>> On Wednesday, 8 July 2015 at 14:45:55 UTC, Xiaoxi wrote:
>>> On Wednesday, 8 July 2015 at 14:18:20 UTC, Jonathan M Davis 
>>> wrote:
>>>>
>>>> And renaming TypeTuple to Aliases is just going to increase 
>>>> confusion.
>>>>
>>>> - Jonathan M Davis
>>>
>>> It's basically just __VA_ARGS__ on steroids, thus 'Arguments' 
>>> is good,
>>> there's precedence in C(Args).
>>
>> LOL. Then what about when you use it for _parameters_ rather 
>> than
>> arguments? Or when you use it areas that have _nothing_ to do 
>> with
>> functions - e.g.
>>
>> foreach(S; TypeTuple!(string, char[], wstring, dstring))
>> {
>>      //...
>> }
>>
>> Naming it Arguments gives the impression that it's 
>> specifically related
>> to arguments, and that's just one small area that it gets used 
>> in. And
>> that's part of what's so hard about naming it. It just does 
>> way too many
>> things to name easily.
>>
>> - Jonathan M Davis
>
> I assume the rationale is that the thing you get is literally 
> the arguments to the template.
>
> alias Asdf(T...)=T;
>
> Asdf!(string,char[],wstring,dstring)
>      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      Arguments
>
> It's the identity function on template argument lists. This is 
> needed because those do not have their own syntax.

Sure, but they could also represent a template's parameters, not 
just the arguments. It all depends on what you're using the 
TypeTuple for.

- Jonathan M Davis


More information about the Digitalmars-d mailing list