Simen kjaeraas Wrote: > On Wed, 16 Dec 2009 07:25:39 +0100, Mike L. <sgtmuff...@myrealbox.com> > wrote: > > > I'm making a class template that only works with strings, so I thought > > it'd be good to instantiate each template with char, wchar, and dchar > > right in the template's module so that when it's compiled it'll be part > > of the .obj file and won't have to compile it for every other project > > that uses it. However, I get an error reproducible with this: > > > > module test; > > > > class A(T) > > { > > version(broken) > > { > > class B > > { > > T blah() { return t; } > > } > > } > > > > T t; > > } > > > > mixin A!(int); > > > > int main() > > { > > A!(int) a = new A!(int)(); > > return 0; > > } > > > > If what I want to do makes sense, how should I be doing it? > > It makes sense. Seems to be another compiler bug, but I have > no good overview of which (might even be a new one). > This compiles and runs: > > class A(T) > { > version(broken) > { > class B > { > // Explicitly state which t we're talking about. > T blah() { return this.outer.t; } > } > } > > T t; > } > > mixin A!(int); > > int main() > { > A!(int) a = new A!(int)(); > return 0; > } > > > -- > Simen
Thanks for the reply, that seems to be working for my project too, but the code gets really ugly really fast. Should I submit a bug report? --Mike L.