'conversion': 從 'type1' 到 'type2' 發生截斷狀況
備註
當值在初始化或建構函式自變數中轉換成較小的類型時,就會發出這個警告,而導致資訊遺失。
範例
此範例顯示您可能會看到此警告的兩種方式:
// 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);
}
若要修正此問題,請使用正確型別的值初始化,或使用明確轉換成正確的類型。 例如,使用 float 2.71828f 之類的常值,而不是 double 初始化變數的默認類型, float 或傳遞至接受自變數的 float 建構函式。