February 04, 2007 [Issue 930] New: Templates inside templates used as mixins | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=930 Summary: Templates inside templates used as mixins Product: D Version: 1.004 Platform: PC OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla@digitalmars.com ReportedBy: wbaxter@gmail.com The following should work I believe, but apparently the type from the outer template does not get propagated to the inner template. It does work if the 'T' line is removed. ---- template ATemplate(T) { template ATemplate() { void foo() { T x = 2; // this line causes an error printf("Hi\n"); } } } class TheClass(alias MixIt) { mixin MixIt; } void main() { auto val = new TheClass!(ATemplate!(int)); val.foo(); } -- |
February 04, 2007 [Issue 930] Templates inside templates used as mixins | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=930 wbaxter@gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |minor ------- Comment #1 from wbaxter@gmail.com 2007-02-04 02:51 ------- Addendum - At least for my purposes, it turns out this can be handled by using templated static structs instead of mixins: struct ATemplate(T) { static: T svar = 99; void foo() { T x = 2; // this line causes an error printf("Hi\n"); } } class TheClass(MixIt) { MixIt mix; } void main() { auto val = new TheClass!(ATemplate!(int)); val.mix.foo(); } ---- This isn't holding me up in any way now, so downgrading to minor. -- |
Copyright © 1999-2021 by the D Language Foundation