c ++ typedef la enumeración de otra clase?

Así que aquí está mi problema:

struct A
{
    enum A_enum
    {
        E0,
        E1,
        E2
    };
};

struct B
{
    typedef A::A_enum B_enum;
    bool test(B_enum val)
    {
        return (val == E1); // error: "E1" undeclared identifier
    }
};

Específicamente no quiero decirA::E1. Si lo intentoB_enum::E1 Recibo una advertencia de que no es estándar. ¿Hay una buena manera de hacer algo como esto?

Respuestas a la pregunta(12)

Su respuesta a la pregunta