Erreur du compilateur C3538
dans une liste de déclarateurs, 'auto' doit toujours être déduit au même type
Toutes les variables déclarées dans une liste de déclaration ne correspondent pas au même type.
Pour corriger cette erreur
- Assurez-vous que toutes les déclarations
auto
figurant dans la liste déduisent le même type.
Exemple
Les instructions suivantes génèrent l'erreur C3538. Chaque instruction déclare plusieurs variables, mais toutes les utilisations du mot clé auto
ne déduisent pas le même type.
// C3538.cpp
// Compile with /Zc:auto
// C3538 expected
int main()
{
// Variable x1 is a pointer to char, but y1 is a double.
auto * x1 = "a", y1 = 3.14;
// Variable c is a char and c1 is char*, but c2, and c3 are pointers to pointers.
auto c = 'a', *c1 = &c, * c2 = &c1, * c3 = &c2;
// Variable x2 is an int, but y2 is a double and z is a char.
auto x2(1), y2(0.0), z = 'a';
// Variable a is a pointer to int, but b is a pointer to double.
auto *a = new auto(1), *b = new auto(2.0);
return 0;
}