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.

Reply via email to