DIP54 : revamp of Phobos tuple types
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Sun Dec 29 07:01:07 PST 2013
On 12/29/13 3:09 AM, Dicebot wrote:
> 1)
> Timon has raised the point that exact match between in naming between
> built-in and library type will be confusing as they will actually differ
> in behavior (http://forum.dlang.org/post/l99mke$q1o$1@digitalmars.com).
> Andrei has proposed `TemplateArgumentPack` as an alternative
> (http://forum.dlang.org/post/l9b5cu$2rsj$2@digitalmars.com) which I do
> like a lot.
>
> That will also imply naming of module `std.meta.pack` instead of
> `std.meta.list`
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.
> As an alternative, I propose signatures of existing templates as-is but
> augment them all with overloads taking single `Pack` (and make it
> requirement when introducing new ones). New multilist utilities added
> are expected to use `Pack`s (I am still convinced that using nested
> templates for that is ugly)
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)?
> 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.
Andrei
More information about the Digitalmars-d
mailing list