Error del compilador C2513

'tipo': no hay ninguna variable declarada antes de '='

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 puede deberse a una operación de conformidad del compilador para Visual Studio .NET 2003: ya no se permite la inicialización de una definición de tipo. El estándar no permite la inicialización de una definición de tipo, que ahora produce un error del compilador.

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

Una alternativa es eliminar typedef para definir una variable con la lista de inicializadores agregados, pero esto no se recomienda porque crea una variable con el mismo nombre que el tipo y oculta el nombre del tipo.