Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A "type1" típus nem vonható le a "type2" típusból
Megjegyzések
A kulcsszó által auto deklarált változó típusa nem vonható le az inicializálási kifejezés típusából. Ez a hiba például akkor fordul elő, ha az inicializálási kifejezés értéke void, ami nem típus.
A hiba kijavítása
Győződjön meg arról, hogy az inicializálási kifejezés típusa nem
void.Győződjön meg arról, hogy a deklaráció nem alapvető típusra mutat. További információ: Alapvető típusok.
Győződjön meg arról, hogy ha a deklaráció egy típusra mutató mutató, akkor az inicializálási kifejezés egy mutatótípus.
Példák
Az alábbi példa c3535 értéket ad vissza, mert az inicializálási kifejezés kiértékelése a következő: void.
// C3535a.cpp
// Compile with /Zc:auto
void f(){}
int main()
{
auto x = f(); //C3535
return 0;
}
Az alábbi példa c3535 értéket ad vissza, mivel az utasítás a változót x mutatóként deklarálja egy deklarált típusra, de az inicializáló kifejezés típusa dupla. Ezért a fordító nem tudja levezetni a változó típusát.
// C3535b.cpp
// Compile with /Zc:auto
int main()
{
auto* x = 123.0; // C3535
return 0;
}
Az alábbi példa c3535 értéket ad vissza, mivel a változó p egy mutatót deklarál egy deklarált típusra, de az inicializálási kifejezés nem mutatótípus.
// C3535c.cpp
// Compile with /Zc:auto
class A { };
A x;
auto *p = x; // C3535