On Tuesday, 20 August 2013 at 20:16:54 UTC, Andrei Alexandrescu
wrote:
On 8/20/13 6:57 AM, Dicebot wrote:
I am proposing something more radical. Deprecate _both_
TypeTuple and
Tuple. Clearly define the difference between built-in type
tuple and
expression tuple (latter being instance of former).
But that can't be the case.
Can you elaborate on this? I can only judge by observable
behavior which clearly says that typeof(TypeTuple!(2, 3)) is
TypeTuple!(int, int). And when you use variadic template argument
syntax in functions, you use "T..." (which is a built-in type
tuple) to declare arguments (which is built-in expression tuple).
There are probably some inconsistencies in implementation but
this is the observable behavior that can be declared official.
Preserve
auto-expansion.
That would be problematic to say the least. (There have been a
few discussions in this group; I've come to think auto
expansion is fail.)
:O it is awesome! Stuff like foo(myStructInstance.tupleof) is
very powerful tool for generic interfaces. Do you remember any
keywords to look for to find those discussions? Ones I remember
were mostly about auto-expansion _not_ happening in some
reasonable places.