Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"konwersja": obcięcie z "type1" do "type2"
Uwagi
To ostrzeżenie jest wyświetlane, gdy wartość jest konwertowana na mniejszy typ w inicjalizacji lub jako argument konstruktora, co powoduje utratę informacji.
Przykład
W tym przykładzie przedstawiono dwa sposoby wyświetlenia tego ostrzeżenia:
// 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);
}
Aby rozwiązać ten problem, zainicjuj przy użyciu wartości poprawnego typu lub użyj jawnego rzutowania do poprawnego typu. Na przykład użyj float literału, takiego jak 2.71828f zamiast double (domyślny typ literałów zmiennoprzecinkowych), aby zainicjować zmienną float lub przekazać do konstruktora, który przyjmuje float argument.