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.

Reply via email to