dev compiler c++ c++11

compiler - c++14



C++ Forward declarando enumeración de ámbito de clase (1)

No puede declarar tipos anidados fuera de la definición de clase.

Si necesita usarlos fuera de la clase, deberá incluir la definición de la clase o moverlos a un espacio de nombres.

Me pregunto si es posible reenviar una enumeración que esté definida dentro de otro ámbito de clase. Por ejemplo, considere lo siguiente:

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

Ahora, en otro encabezado me gustaría reenviar declarar la enumeración de ''tipo'' (supongamos que la clase B a continuación tiene una función que hace algo con A :: type)

//B.h enum A::type; //use of undefined type ''A'' class B { public: UseTypeEnum(A::Type&); };

Esto tampoco funciona:

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

No hay problema si la enumeración se declara a nivel global en Ah

¿Hay alguna manera de hacer esto?