Error del compilador C2513
Actualización: noviembre 2007
Mensaje de error
'tipo' : no hay ninguna variable declarada antes de '='
'type' : no variable declared before '='
El especificador de tipo aparece en la declaración sin identificador de variable.
El ejemplo siguiente genera el error C2513:
// C2513.cpp
int main() {
int = 9; // C2513
int i = 9; // OK
}
Este error también puede producirse como resultado del trabajo de conformidad del compilador realizado para Visual Studio .NET 2003: ya no se permite la inicialización de un tipo typedef. El estándar no permite la inicialización de un tipo typedef; ahora se genera un error de compilación.
Vea Resumen de cambios importantes en tiempo de compilación para obtener más información.
// C2513b.cpp
// compile with: /c
typedef struct S {
int m_i;
} S = { 1 }; // C2513
// try the following line instead
// } S;
Una alternativa sería eliminar typedef y definir una variable con una lista de inicializador de agregado, pero no es recomendable porque creará una variable con el mismo nombre que el tipo y ocultará el nombre del tipo.