Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
kan het type voor 'type1' niet afleiden van 'type2'
Opmerkingen
Het type variabele dat door het auto trefwoord is gedeclareerd, kan niet worden afgeleid van het type initialisatie-expressie. Deze fout treedt bijvoorbeeld op als de initialisatie-expressie resulteert in void, wat geen type is.
Deze fout corrigeren
Zorg ervoor dat het type initialisatie-expressie niet
voidis.Zorg ervoor dat de declaratie geen verwijzing naar een fundamenteel type is. Zie Basistypen voor meer informatie.
Zorg ervoor dat als de declaratie een aanwijzer naar een type is, de initialisatie-expressie een aanwijzertype is.
Voorbeelden
In het volgende voorbeeld wordt C3535 weergegeven omdat de initialisatie-expressie resulteert in void.
// C3535a.cpp
// Compile with /Zc:auto
void f(){}
int main()
{
auto x = f(); //C3535
return 0;
}
In het volgende voorbeeld wordt C3535 weergegeven omdat de instructie een variabele x declareert als een aanwijzer naar een afgeleid type, maar het type initializer-expressie is dubbel. Daarom kan de compiler het type van de variabele niet afleiden.
// C3535b.cpp
// Compile with /Zc:auto
int main()
{
auto* x = 123.0; // C3535
return 0;
}
In het volgende voorbeeld wordt C3535 weergegeven omdat een variabele p een aanwijzer declareert naar een afgeleid type, maar de initialisatie-expressie is geen aanwijzertype.
// C3535c.cpp
// Compile with /Zc:auto
class A { };
A x;
auto *p = x; // C3535