Errore del compilatore C2513

Aggiornamento: novembre 2007

Messaggio di errore

'tipo': nessuna variabile dichiarata prima di '='
'type' : no variable declared before '='

L'identificatore del tipo è presente in una dichiarazione senza identificatore della variabile.

Nell'esempio seguente viene generato l'errore C2513:

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

Questo errore può anche venire generato come risultato delle operazioni di conformità eseguite per Visual Studio .NET 2003: l'inizializzazione di un typedef non è più consentita. L'inizializzazione di un typedef non è consentita dallo standard e attualmente genera un errore del compilatore.

Per ulteriori informazioni, vedere Riepilogo delle ultime modifiche in fase di compilazione.

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

Una soluzione alternativa potrebbe consistere nell'eliminare typedef per definire una variabile con un elenco di inizializzatori di aggregazione, ma è comunque sconsigliata perché verrebbe creata una variabile con lo stesso nome del tipo e quest'ultimo risulterebbe quindi nascosto.