Erreur du compilateur C2513
Mise à jour : novembre 2007
Message d'erreur
'type' : aucune variable déclarée avant '='
'type' : no variable declared before '='
Le spécificateur de type apparaît dans la déclaration sans identificateur de variable.
L'exemple suivant génère l'erreur C2513 :
// C2513.cpp
int main() {
int = 9; // C2513
int i = 9; // OK
}
Cette erreur peut également être due à la mise en conformité du compilateur pour Visual Studio .NET 2003 : initialisation d'un typedef dorénavant interdite. L'initialisation d'un typedef est interdite par le standard et génère maintenant une erreur du compilateur.
Pour plus d'informations, consultez le résumé de Compile-Time Breaking Changes.
// C2513b.cpp
// compile with: /c
typedef struct S {
int m_i;
} S = { 1 }; // C2513
// try the following line instead
// } S;
Une alternative consisterait à supprimer typedef pour définir une variable avec une liste d'initialiseurs d'agrégat, mais cela n'est pas recommandé, car une variable portant le même nom que le type serait créée et masquerait le nom du type.