I'm wondering if it's possible to forward declare an enum that's defined within another class scope. For example, consider the following:

//A.h
class A
{
public:
    enum class type: unsigned long { /*some stuff*/ }
};

Now, in another header I'd like to forward declare the 'type' enum (suppose class B below has a function that does something with A::type)

//B.h
enum A::type; //use of undefined type 'A'

class B
{
public:
    UseTypeEnum(A::Type&);
};

This doesn't work either:

//B.h
class A;
enum A::type; //still use of undefined type

class B...

There's no problem if the enum is declared at global scope in A.h.

Is there any way to do this?

Edit
Report