Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
"conversion": truncamiento de "type1" a "type2"
Comentarios
Esta advertencia se emite cuando un valor se convierte en un tipo más pequeño en una inicialización o como argumento de constructor, lo que da lugar a una pérdida de información.
Ejemplo
En este ejemplo se muestran dos maneras de ver esta advertencia:
// 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);
}
Para corregir este problema, use un valor del tipo correcto para inicializar, o bien use una conversión explícita al tipo correcto. Por ejemplo, use un literal float como 2.71828f en lugar de double (el tipo predeterminado para literales de número de punto flotante) para inicializar una variable float o para pasar a un constructor que toma un argumento float.