On Monday, 17 December 2012 at 22:24:58 UTC, r_m_r wrote:
On 12/17/2012 04:33 AM, js.mdnq wrote:
Well, it a slightly another way and close. Let me see if I can
come up
with something that expresses better what I'm after. It will
be a week
or two though till I get around to it probably.
OK. I'll just leave this here for future reference:
http://dpaste.dzfl.pl/d8faa96a
http://dpaste.dzfl.pl/fc88273b
regards,
r_m_r
Cool. You have some useful stuff there. I'll have to go through
it and see if it does what I want or could be used to do it. It
looks like it does the combining so that is a definite plus. I
think, though, one problem is, is you would want to wrap the user
struct in a template because you might want to access the
master's members from the user struct.
It looks like the approach 2 does what I'm looking for pretty
nicely except that, If I'm not mistaken the user struct will
error out when trying to access members from the master.
e.g.,
struct S_AB(AT, BT)
{
AT A;
BT B;
}
struct S_CD(CT, DT)
{
void check() { writeln(A); } // error, No A
CT C;
DT D;
}
mixin ( gen!("S_ABCD", S_AB!(int, float), S_CD!(double, string))
);
I'm not actually sure about the best approach here. Using a
template mixin will work but I like the look & feel of just using
normal structs(as we don't have to access A in S_CD if we don't
need too).
In any case, it seems your method does not work with methods? if
I add the `check()` to your approach-2 it fails with several
strange errors. Any ideas?