Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
'conversion': Verkürzung von 'type1' zu 'type2'
Hinweise
Diese Warnung wird ausgegeben, wenn ein Wert in einen kleineren Typ in einer Initialisierung oder als Konstruktorargument konvertiert wird, was zu einem Verlust von Informationen führt.
Beispiel
Dieses Beispiel zeigt zwei Möglichkeiten, wie diese Warnung angezeigt wird:
// C4305.cpp
// Compile by using: cl /EHsc /W4 C4305.cpp
struct item
{
item(float) {}
};
int main()
{
float f = 2.71828; // C4305 'initializing'
item i(3.14159); // C4305 'argument'
return static_cast<int>(f);
}
Um dieses Problem zu beheben, initialisieren Sie mithilfe eines Werts des richtigen Typs, oder verwenden Sie eine explizite Umwandlung in den richtigen Typ. Verwenden Sie z. B. ein float Literal wie 2.71828f anstelle eines double (Standardtyps für Gleitkommaliterale), um eine float Variable zu initialisieren oder an einen Konstruktor zu übergeben, der ein float Argument verwendet.