On Mon, 19 Apr 2010 16:52:40 -0400, Philippe Sigaud
<philippe.sig...@gmail.com> wrote:
On Mon, Apr 19, 2010 at 21:20, Steven Schveighoffer
<schvei...@yahoo.com>wrote:
Here is a quick-and-dirty solution, if you don't mind using
classes/interfaces.
(snip)
I'm not used to using interfaces in this way. What become the stored T
values when you cast the classes into IW to construct your array? I
suppose
they're lost?
Not sure what you mean...
Does that mean that if we have a bunch of T (all different types),you
map a
call to makeW on it, get back a bunch of WByVal!T (all different types),
cast them to IW and... what? erase the types?
What I had in mind was:
struct S
{
int foo(int x) { return x * 2; }
}
struct S2
{
int foo(int x) { return x + 2; }
}
void main()
{
S s1;
S2 s2;
IW[] ws;
ws ~= makeW(s1);
ws ~= makeW(s2);
assert(ws[0].foo(3) == 6);
assert(ws[1].foo(3) == 5);
}
does this help?
-Steve