Aracılığıyla paylaş


Derleyici Hatası C3535

'type1' için 'type2' türünden tür çıkarılamıyor

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

  1. Başlatma ifadesinin türünün olmadığından voidemin olun.

  2. Bildirimin temel bir türün işaretçisi olmadığından emin olun. Daha fazla bilgi için bkz . Temel Türler.

  3. 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

Ayrıca bkz.

auto Anahtar Sözcüğü
Temel Türler