Why TypeTuple can be assigned to a variable

Zhenya zheny at list.ru
Wed Jun 12 03:21:43 PDT 2013


On Wednesday, 12 June 2013 at 10:09:07 UTC, Simen Kjaeraas wrote:
> On Wed, 12 Jun 2013 11:44:19 +0200, Zhenya <zheny at list.ru> 
> wrote:
>
>> OK,you say that TypeTuple!("foo","bar") is a cool value of type
>> TypeTuple!(string,string),right?
>
> Well, yes and no, not really. It's a bit magical. In your case,
> it's assigned to an auto variable, and that variable gets that 
> type.
> There are other ways to use a TypeTuple where it has other 
> semantics,
> as you write yourself.
>
> As explained below, a TypeTuple is just a bag of template 
> parameters,
> and thus obeys the rules for a bag of template parameters.
>
>
>> This behaviour confuses me a bit.
>
> Understandable. It's not entirely straightforward, because the
> concerns of usability weigh heavier than those of consistency.
>
>
>> And I just don't understand why do we need TypeTuple's value
>> semantic
>> to implement std.Tuple,because AFAIK it use variadic template
>> parameter pack
>>   != TypeTuple.
>
> The definition od std.typetuple.TypeTuple is:
>
> template TypeTuple(T...){
>     alias TypeTuple = T;
> }
>
> So a TypeTuple is exactly the same as a variadic template
> parameter pack.
>
>
>> Sorry for my english.
>
> No need to be, your English is great.

Thank you for your explaination,I understand.



More information about the Digitalmars-d-learn mailing list