Compilerwarnung (Ebene 1 und Ebene 2) C4091

Schlüsselwort“: wird auf der linken Seite von „Typ“ ignoriert, wenn keine Variable deklariert wurde

Der Compiler hat eine Situation erkannt, in der der Benutzer wahrscheinlich eine Variable deklarieren wollte, aber der Compiler konnte die Variable nicht deklarieren.

Beispiele

Ein __declspec-Attribut am Anfang einer benutzerdefinierten Typdeklaration wird auf die Variable dieses Typs angewendet. C4091 gibt an, dass keine Variable deklariert wird. Im folgenden Beispiel wird C4091 generiert:

// C4091.cpp
// compile with: /W1 /c
__declspec(dllimport) class X {}; // C4091

// __declspec attribute applies to varX
__declspec(dllimport) class X2 {} varX;

// __declspec attribute after the class or struct keyword
// applies to user defined type
class __declspec(dllimport) X3 {};

Wenn es sich bei einem Bezeichner um eine Typendefinition handelt, kann es sich nicht auch um einen Variablennamen handeln. Im folgenden Beispiel wird C4091 generiert:

// C4091_b.cpp
// compile with: /c /W1 /WX
#define LIST 4
typedef struct _LIST {} LIST;   // C4091