コンパイラ エラー C2513

更新 : 2007 年 11 月

エラー メッセージ

'type' : 指定された型は、識別子の名前を指定せずに宣言されています。

型指定子が、変数識別子のない宣言で使用されています。

次の例では C2513 エラーが生成されます。

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

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

詳細については、「Summary of Compile-Time Breaking Changes」を参照してください。

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

typedef を削除して変数を初期化子の集約リストで定義する方法もありますが、これは型と同じ名前の変数を作成して型名を隠すためお勧めできません。