proposal: generic tupleof property for expressions

Downs default_357-line at yahoo.de
Mon Apr 30 07:29:12 PDT 2007


Don Clugston wrote:
> Downs wrote:
>> I think D could be made much more powerful by extending the tupleof 
>> property
>> (or a new property) to arbitrary expressions, similar to stringof, 
>> along the lines of
>>
>> (func(a, b)).tupleof resulting in a tuple like Tuple!(int 
>> function(int, int), (a, b)).
>>
>> Or deeper: ((a+b)*c).tupleof == Tuple!(int function(int, int), ((int 
>> function(int, int), a, b), c));
> 
> Currently tuples can't be nested; they automatically flatten. You can't 
> have a tuple inside a tuple.

Right, I forgot. Damn.
Is this necessary behavior? I mean, is there any reason why we need automatic flattening?
If they weren't, could they be flattened manually?

> 
> What are 'a' and 'b' inside the tuple? Are they types, aliases, or values?
> 
> eg
> int a;
> const int b=7;
> alias c a;
> What would ((a+b)*c).tupleof return?

Not sure actually, I just thought it might be neat.
I'm kinda undecided between values and aliases.



More information about the Digitalmars-d mailing list