On 8/20/13 8:43 AM, Kenji Hara wrote:
2013/8/20 Dicebot <pub...@dicebot.lv <mailto:pub...@dicebot.lv>>
What we have here are two completely different _built-in_ tuple
types. "T" is pure template arguments list and is pretty much equal
TypeTuple!(int, int). But what is "args"? It uses the very same
built-in tuple syntax but it is much closer to std.typecons.Tuple in
its behavior (actually, latter is implemented in terms of it as I
was pointed out) - it is an entity that provides abstraction of top
of group of run-time values. It does not have any binary structure
on its own (built on top of existing values) but observable semantic
are very "run-time'ish".
"args" is a built-in tuple of two function parameter variables. In
binary level, args[0] and args[1] could be bounded to completely
individual storage. (Even if args[1] is on stack, args[0] may be on
register)
On the other hand, std.typecons.Tuple is a struct. Its second field has
the memory address which follows of the first field.
Ome question would be whether appropriate inlining could solve the
performance disadvantage of Tuple.
Andrei