Kompilatorfel C7742

Identifierare: En framåtriktad deklaration av ett enum kan bara använda en enkel identifierare

Anmärkningar

C++ Standard tillåter inte att en ogenomskinlig uppräkning deklareras med hjälp av ett kvalificerat ID. En täckande uppräkningsdeklaration anger namnet och den underliggande typen, men visar inte uppräknaren eller deras värden.

Example

I följande exempel genereras C7742:

// C7742.cpp
class MyClass
{ 
public: 
    enum MyEnum
    { 
        e1, 
        e2 
    }; 
}; 
  
enum MyClass::MyEnum;   // C7742

Åtgärda det här felet genom att ta bort den täckande uppräkningsdeklarationen eftersom den inte lägger till något i programmet.

Du kan dock definiera en uppräkning med ett kvalificerat ID. Till exempel:

struct S
{
   enum E : int;
};

enum S::E : int { e1, e2, e3 };