コンパイラの警告 (レベル 1 およびレベル 2) C4091
'keyword': 変数が何も宣言されていないときは、'type' の左辺を無視します
コンパイラは、ユーザーが変数を宣言することを意図していたが、コンパイラが変数を宣言できなかった状況を検出しました。
例
ユーザー定義型宣言の先頭の __declspec
属性は、その型の変数に適用されます。 C4091 は、変数が宣言されていないことを示します。 次の例では C4091 が生成されます。
// 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 {};
識別子が typedef の場合、それを変数名にもすることはできません。 次の例では C4091 が生成されます。
// C4091_b.cpp
// compile with: /c /W1 /WX
#define LIST 4
typedef struct _LIST {} LIST; // C4091