Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
kan inte härleda typen för "type1" från "type2"
Anmärkningar
Den typ av variabel som deklareras av nyckelordet auto kan inte härledas från typen av initieringsuttryck. Det här felet uppstår till exempel om initieringsuttrycket utvärderas till void, vilket inte är en typ.
Så här åtgärdar du det här felet
Kontrollera att initieringsuttryckets typ inte
voidär .Kontrollera att deklarationen inte är en pekare till en grundläggande typ. Mer information finns i Grundläggande typer.
Kontrollera att om deklarationen är en pekare till en typ är initieringsuttrycket en pekartyp.
Examples
I följande exempel returneras C3535 eftersom initieringsuttrycket utvärderas som void.
// C3535a.cpp
// Compile with /Zc:auto
void f(){}
int main()
{
auto x = f(); //C3535
return 0;
}
I följande exempel returneras C3535 eftersom -instruktionen deklarerar variabeln x som en pekare till en inducerad typ, men typen av initialiseraruttrycket är dubbel. Kompilatorn kan därför inte härleda variabeltypen.
// C3535b.cpp
// Compile with /Zc:auto
int main()
{
auto* x = 123.0; // C3535
return 0;
}
I följande exempel returneras C3535 eftersom variabeln p deklarerar en pekare till en inducerad typ, men initieringsuttrycket är inte en pekartyp.
// C3535c.cpp
// Compile with /Zc:auto
class A { };
A x;
auto *p = x; // C3535