On Wednesday, 12 June 2013 at 10:09:07 UTC, Simen Kjaeraas wrote:
On Wed, 12 Jun 2013 11:44:19 +0200, Zhenya <[email protected]>
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.