Forward reference to enum nested in a class
Jarrett Billingsley
kb3ctd2 at yahoo.com
Sun Nov 4 07:58:37 PST 2007
"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.
More information about the Digitalmars-d
mailing list