On Fri, 04 May 2012 09:06:31 -0400, Jakob Ovrum <jakobov...@gmail.com>
wrote:
On Friday, 4 May 2012 at 12:49:35 UTC, Steven Schveighoffer wrote:
or more generically:
c = new typeof(c)(c.filter!(x => x < 3));
?
That doesn't do the right thing when 'c' isn't a class type, so it's not
really that generic.
Struct types (the type of `new typeof(c)` is not `typeof(c)`!) and array
types simply fail with your suggestion.
Structs don't make very good containers. A slice is not really a
container.
But in any case, someone can make a function that's generic with a couple
static ifs.
I personally haven't decided whether I think a generic convention is
useful here, but that code doesn't fit the bill.
What exactly are you looking for? I mean, you want the original type
back, so you can reassign, is that all? Something like this should work
for that:
c = makeContainer!typeof(c)(c.filter!(x => x < 3));
Implementation left as an exercise.
-Steve