DIP54 : revamp of Phobos tuple types

monarch_dodra monarchdodra at gmail.com
Mon Dec 23 05:23:38 PST 2013


> 5 Algorithms from `std.typetuple` are re-written to accept 
> non-expanding template argument lists and form base for 
> `std.meta.` package.

Why? This seems to me like it would create duplication for 
nothing. These templates would do the expanding themselves?

Unless I'm mistaken, the `TemplateArgumentList`represents a 
packaged and convenient to use type. You only unpack it when you 
actually pass around the types.

If anything, this would create ambiguity. If the algorithms from 
typetuple accept a TemplateArgumentList, and expand it 
themselves, then we'd be creating ambiguity:

eg:
staticIndexOf(int, TemplateArgumentList!(int, double), int);

Produces 1? 2? 3?
I really don't know.

I think TemplateArgumentList should be handled as what it is: a 
*type*, and not unpackaged by clients receiving the type, but by 
providers of the type.


More information about the Digitalmars-d mailing list