Erreur du compilateur C3538
dans une liste de déclarateur « auto » doit toujours déduire vers le 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
- Vérifiez que toutes les déclarations auto dans la liste déduisent vers le même type.
Exemple
Les instructions suivantes donnent C3538. Chaque instruction déclare plusieurs variables, mais chaque utilisation du mot clé auto ne déduit pas vers 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, but c1, 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;
}