On Sunday, 29 December 2013 at 15:01:03 UTC, Andrei Alexandrescu wrote:
I think a duo `TemplateArgumentList` (auto-expansion) and `TemplateArgumentPack` (no auto-expansion) in the same module is the ticket. It also makes for a wonderful opportunity to explain the distinction in the documentation and recommend idioms for each.

I am concerned about cognitive load that explanations of all those concepts at once creates. Having minimal type set allows to descend deeper iteratively. It will also be hard to explain why this type is _needed_ in stdlib (at least for me, because I have no answer for that)

To use your own argument: why add all those overloads instead of requiring the user to use .expand with a TemplateArgumentPack (or assuming we go with my suggestion above, just use a TemplateArgumentList in the first place)?

Signature consistency. If you will use different algorithms in same code snippet (some with single variadic argument, some with multiple) having some of arguments augmented with .expand and some not is rather ugly.

I don't have strong preference here though and will be fine without adding overloads.

3)
Point about omitting expanding library type still remains. I am still looking for use case when those are really necessary (as a library type).

See above. I think several people argued that there are plenty of places where automatic expansion is the desired behavior.

Yep, but none of those featured auto-expanding _library_ type as part of desired behavior. May you point at specific example I have missed please?

Reply via email to