digitalmars.D.learn - How to Mixin a Type List?
- Nick (6/6) Jan 25 2011 Instead of mixing in type by type, is there a way to mixin a Type Tuple?...
- Philippe Sigaud (4/8) Jan 25 2011 Could you give an example of type mixin? I'm not sure I understand
- Simen kjaeraas (11/15) Jan 25 2011 That would be the way to do it, yes:
- Nick (7/21) Feb 19 2011 Thanks! The problem is with mixing containing identical members. Then I
Instead of mixing in type by type, is there a way to mixin a Type Tuple? Some foreach Type mixin; Otherwise, I guess recursive templated inheritance with a single mixin at each level should to the trick? Thanks, Nick
Jan 25 2011
On Tue, Jan 25, 2011 at 12:33, Nick <nick example.com> wrote:Instead of mixing in type by type, is there a way to mixin a Type Tuple? Some foreach Type mixin; Otherwise, I guess recursive templated inheritance with a single mixin at each level should to the trick?Could you give an example of type mixin? I'm not sure I understand what you're trying to do. Philippe
Jan 25 2011
Nick <nick example.com> wrote:Instead of mixing in type by type, is there a way to mixin a Type Tuple? Some foreach Type mixin; Otherwise, I guess recursive templated inheritance with a single mixin at each level should to the trick?That would be the way to do it, yes: template chainedMixin( alias head, tail... ) { mixin head; mixin chainedMixin!tail; } template chainedMixin( alias head ) { mixin head; } -- Simen
Jan 25 2011
On 1/25/2011 11:33 PM, Simen kjaeraas wrote:Nick <nick example.com> wrote:Thanks! The problem is with mixing containing identical members. Then I need to disambiguate to address them. For that, I'd need to say something like mixin head headIdentifier; But I would need to differentiate somehow those identifiers... Any ideas? Thanks!Instead of mixing in type by type, is there a way to mixin a Type Tuple? Some foreach Type mixin; Otherwise, I guess recursive templated inheritance with a single mixin at each level should to the trick?That would be the way to do it, yes: template chainedMixin( alias head, tail... ) { mixin head; mixin chainedMixin!tail; } template chainedMixin( alias head ) { mixin head; }
Feb 19 2011