Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
'type1' için 'type2' türünden tür çıkarılamıyor
Açıklamalar
anahtar sözcüğü tarafından bildirilen değişkenin auto türü, başlatma ifadesinin türünden çıkarılamaz. Örneğin, başlatma ifadesi bir tür olmayan olarak değerlendirilirse voidbu hata oluşur.
Bu hatayı düzeltmek için
Başlatma ifadesinin türünün olmadığından
voidemin olun.Bildirimin temel bir türün işaretçisi olmadığından emin olun. Daha fazla bilgi için bkz . Temel Türler.
Bildirimin bir tür işaretçisi olması durumunda başlatma ifadesinin bir işaretçi türü olduğundan emin olun.
Örnekler
Başlatma ifadesi olarak değerlendirildiği için aşağıdaki örnek C3535 verir void.
// C3535a.cpp
// Compile with /Zc:auto
void f(){}
int main()
{
auto x = f(); //C3535
return 0;
}
Aşağıdaki örnek C3535'i verir çünkü deyimi değişkeni x bir işaretçi olarak algılar, ancak başlatıcı ifadesinin türü çifttir. Sonuç olarak, derleyici değişkenin türünü çıkaramaz.
// C3535b.cpp
// Compile with /Zc:auto
int main()
{
auto* x = 123.0; // C3535
return 0;
}
Aşağıdaki örnek C3535'i verir çünkü değişken p bir işaretçiyi çıkarılmış bir türe bildirir, ancak başlatma ifadesi bir işaretçi türü değildir.
// C3535c.cpp
// Compile with /Zc:auto
class A { };
A x;
auto *p = x; // C3535