Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Aplikace nemůže odvodit typ 'type1' z 'type2'
Poznámky
Typ proměnné deklarované klíčovým slovem auto nelze odvodit z typu inicializačního výrazu. K této chybě dochází například v případě, že se výraz inicializace vyhodnotí jako void, což není typ.
Oprava této chyby
Ujistěte se, že typ inicializačního výrazu není
void.Ujistěte se, že deklarace není ukazatelem na základní typ. Další informace naleznete v tématu Základní typy.
Ujistěte se, že pokud je deklarace ukazatelem na typ, inicializační výraz je typ ukazatele.
Příklady
Následující příklad přináší C3535, protože inicializační výraz je vyhodnocen jako void.
// C3535a.cpp
// Compile with /Zc:auto
void f(){}
int main()
{
auto x = f(); //C3535
return 0;
}
Následující příklad dává C3535, protože příkaz deklaruje proměnnou x jako ukazatel na vyvolaný typ, ale typ výrazu inicializátoru je dvojitý. Kompilátor proto nemůže odvodit typ proměnné.
// C3535b.cpp
// Compile with /Zc:auto
int main()
{
auto* x = 123.0; // C3535
return 0;
}
Následující příklad přináší C3535, protože proměnná p deklaruje ukazatel na vyvolaný typ, ale inicializační výraz není typ ukazatele.
// C3535c.cpp
// Compile with /Zc:auto
class A { };
A x;
auto *p = x; // C3535