C3535 chyba kompilátoru
Nelze zjistit typ "typ1" z "typ2."
Typ proměnné deklarované pomocí auto klíčové slovo nemůže být odvozeno z typu výrazu inicializace.Například k této chybě dochází, pokud inicializaci výraz vyhodnocen jako void, který není typu.
Chcete-li opravit tuto chybu
Zajištění typ inicializace výrazu není void.
Zajistěte prohlášení není základní typ ukazatele.Další informace naleznete v tématu Základní typy (C++).
Zajistěte, aby ukazatel na typ prohlášení se inicializace výraz typ ukazatele.
Příklad
Následující příklad dává C3535, protože inicializace výraz 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 výraz je jako ukazatel na deduced typu, ale inicializátor typ double.V důsledku toho kompilátor nelze odvodit typ proměnné.
// C3535b.cpp
// Compile with /Zc:auto
int main()
{
auto* x = 123.0; // C3535
return 0;
}
Následující příklad dává C3535, protože proměnná p prohlašuje ukazatel na deduced typu, ale inicializace výraz není typ ukazatele.
// C3535c.cpp
// Compile with /Zc:auto
class A { };
A x;
auto *p = x; // C3535