コンパイラ エラー C2513

'type' : '=' の前に変数が宣言されていません

型指定子が、変数識別子のない宣言に出現します。

次の例では C2513 が生成されます:

// C2513.cpp
int main() {
   int = 9;   // C2513
   int i = 9;   // OK
}

このエラーは、Visual Studio .NET 2003 でコンパイラ準拠作業が行われ、typedef の初期化が許可されなくなった結果として生成される場合もあります。 typedef の初期化は標準で許可されておらず、コンパイラ エラーが生成されるようになりました。

// C2513b.cpp
// compile with: /c
typedef struct S {
   int m_i;
} S = { 1 };   // C2513
// try the following line instead
// } S;

または、typedef を削除して、集約された初期化子リストを持つ変数を定義することもできますが、この方法は推奨されません。これは、型と同じ名前の変数が作成され、型名が非表示になるためです。