Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
impossibile dedurre il tipo per 'type1' da 'type2'
Osservazioni:
Il tipo della variabile dichiarata dalla auto parola chiave non può essere dedotto dal tipo dell'espressione di inizializzazione. Ad esempio, questo errore si verifica se l'espressione di inizializzazione restituisce void, che non è un tipo.
Per correggere l'errore
Verificare che il tipo dell'espressione di inizializzazione non
voidsia .Assicurarsi che la dichiarazione non sia un puntatore a un tipo fondamentale. Per altre informazioni, vedere Tipi fondamentali.
Assicurarsi che se la dichiarazione è un puntatore a un tipo, l'espressione di inizializzazione è un tipo di puntatore.
Esempi
L'esempio seguente restituisce C3535 perché l'espressione di inizializzazione restituisce void.
// C3535a.cpp
// Compile with /Zc:auto
void f(){}
int main()
{
auto x = f(); //C3535
return 0;
}
L'esempio seguente restituisce C3535 perché l'istruzione dichiara la variabile come puntatore x a un tipo dedotto, ma il tipo dell'espressione di inizializzatore è double. Di conseguenza, il compilatore non può dedurre il tipo della variabile.
// C3535b.cpp
// Compile with /Zc:auto
int main()
{
auto* x = 123.0; // C3535
return 0;
}
L'esempio seguente restituisce C3535 perché la variabile dichiara un puntatore p a un tipo dedotto, ma l'espressione di inizializzazione non è un tipo puntatore.
// C3535c.cpp
// Compile with /Zc:auto
class A { };
A x;
auto *p = x; // C3535