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