Возможный дубликат:
g++ - не предупреждать о double- > int cast
В вопросе здесь прямое преобразование из double/float в unsigned integer не переносится. Я обнаружил, что у меня было несколько случаев в моем коде, где это происходит, и я хотел бы сказать g++, чтобы предупредить меня, если это произойдет, но я не могу найти такой вариант. Кто-нибудь знает, есть ли возможность сделать это?
Примечание. Я вижу -Wconversion, но также предупреждает обо всех других преобразованиях, которые мне не нужны (например, преобразование int в unsigned int, которое переносимо для стандарта).
Изменить: Вот пример кода, для которого я хотел бы видеть предупреждение:
double dblNumber = -234;
unsigned long uintNumber = dblNumber;
В одной версии g++ это дает целочисленное значение 0xFFFFFF16 (что составляет -234 в 2 дополнениях). С другой стороны, это дает мне 0. Очевидно, что код неоднозначен, поэтому он по понятным причинам не считается переносимым.