重複の可能性:
g ++ -double->intcastについて警告しません
ここでの質問によると、double/floatから符号なし整数への直接変換は移植できません。コードにこれが発生するケースがいくつかあることがわかりました。これが発生した場合に警告するようにg++に指示したいのですが、そのようなオプションが見つかりません。これを行うオプションがあるかどうか誰かが知っていますか?
注:-Wconversionは表示されますが、それは私が気にしない他のすべての種類の変換についても警告します(intをunsigned intに変換するなど、標準に従って移植可能です)。
編集:これが私が警告を見たいコード例です:
double dblNumber = -234;
unsigned long uintNumber = dblNumber;
g ++の1つのバージョンでは、これにより0xFFFFFF16の整数値(2の補数では-234)が得られます。別の場合、それは私に0を与えます。明らかにコードが曖昧であるため、当然のことながら移植性があるとは見なされません。