Udostępnij za pośrednictwem


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

  1. 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;
}

Zobacz też

Auto, słowo kluczowe