Forward reference to enum nested in a class
HOSOKAWA Kenchi
hskwk at inter7.jp
Tue Nov 6 08:39:46 PST 2007
Jarrett Billingsley Wrote:
> "HOSOKAWA Kenchi" <hskwk at inter7.jp> wrote in message
> news:fghd88$2eql$1 at digitalmars.com...
> > Dear Everyone,
> >
> > I have problem on reference to enum nested in a class from template
> > difinition.
> >
> >
> > class Foo
> > {
> > enum FooEnum {}
> > }
> > enum GlobalEnum {}
> >
> > class BarA(Foo.FooEnum T) {} // Error, Foo.FooEnum is forward referenced
> > class BarB(T : GlobalEnum){} // OK
> > class BarC
> > {
> > FooEnum t; // OK
> > }
> >
> >
> > I want to specialize class template BarA in each conditions listed in
> > Foo.FooEnum closely related with class Foo.
> > This trial, however, failed because of forward reference to Foo.FooEnum
> > from BarA.
> > I have avoided this problem in this way:
> >
> >
> > enum FooEnum {}
> > class Foo
> > {
> > alias .FooEnum FooEnum;
> > }
> > class BarD(Image.FooEnum T) {}
> >
> >
> > Please let me know the way to resolve this probrem.
> > I have no idea whether this problem should be avoided by such way or
> > another.
>
> It's a bug that's been in the language as long as I can remember. Walter
> deems it "too difficult to fix with too little reward." BS, I say.
>
>
Thank you very much for the information.
Fortunately I have a alternative solution written above, so I won't care of this problem.
again, thanks.
More information about the Digitalmars-d
mailing list