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?

Reply via email to