DIP54 : revamp of Phobos tuple types

Dicebot public at dicebot.lv
Sun Dec 29 03:09:53 PST 2013


Winter holidays have distracted me a bit, back to this topic.

I have been thinking about concerns mentioned for a while, this 
is proposed update to DIP in question to address those. Hope that 
will be a more acceptable compromise to everyone.

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`

2)
Despite my initial desire to standardize API between library 
types it seems that breakage will be much more damaging than I 
have initially expected. Jakob example 
(http://forum.dlang.org/post/vkeqyorptcobufzmmhgm@forum.dlang.org) 
does not look _that_ bad but imagining is(typeof()) error 
suppression on top is pain.

I reconsider that proposal.

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)

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).

Does that look more acceptable? Jakob, Andrej?


More information about the Digitalmars-d mailing list