Why can't templates use tuples for for argument types?

Bill Baxter dnewsgroup at billbaxter.com
Wed Jul 18 18:37:12 PDT 2007

Jarrett Billingsley wrote:
> "Bill Baxter" <dnewsgroup at billbaxter.com> wrote in message 
> news:f7m9k9$es4$1 at digitalmars.com...
>> Rather than proposing a bunch of new syntax, isn't the solution just to 
>> make those things work as expected?  If you want at least one thing it 
>> seems perfectly reasonable to me to do:
>> template Foo(A, B...) {
>>    alias Tuple!(A,B) ArgTuple;
>>    ...
>> }
> Well the issue is that an identifier as a template parameter already has a 
> well-defined meaning - it's a type parameter.  Changing it to allow anything 
> seems awfully scary, hence the suggestions for new syntax. 

Yeh I meant for the A to be a type there.
I guess I just don't understand the use case for BCS's original example:

   template Foo(A, B...) {}

   these should work

   Foo!(1, int);
   Foo!(int, 1);
   Foo!(Foo!(int, 1));

If you don't even know what kind of entity a thing is, there's not much 
you can do with it.

Anyway, since it's been a basically a dialogue between you and BCS so 
far, something tells me you haven't hit a nerve with many folks.  My 
guess is that most folks aren't clear what the motivating use case is. 
And probably Walter isn't going to be much interested in this either 
without good use case examples.


More information about the Digitalmars-d-learn mailing list