Błąd kompilatora C3538
w deklaratorze "auto" musi być zawsze wyjęcie do tego samego typu
Wszystkie zadeklarowane zmienne na liście deklaracji nie są rozpoznawane dla tego samego typu.
Aby poprawić ten błąd
- Upewnij się, że wszystkie
auto
deklaracje na liście są wywoływalne do tego samego typu.
Przykład
Poniższe instrukcje dają C3538. Każda instrukcja deklaruje wiele zmiennych, ale każde użycie słowa kluczowego auto
nie jest wywoływalne do tego samego typu.
// 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;
}