Может ли Clang вывести предупреждение о преобразовании double в float?

Этот код

int main() {
    double d = 3.14;
    float f = d;
}

генерирует предупреждение с помощью Vision C++ 2015 express:

warning C4244: 'initializing': conversion from 'double' to 'float', possible loss of data

Я бы также хотел увидеть подобное предупреждение при компиляции с помощью Clang (или GCC). Есть ли для этого опция командной строки? -Wconversion тут не поможет.


person Tobias Hermann    schedule 19.07.2016    source источник
comment
-Wnarrowing помогает?   -  person Richard Critten    schedule 19.07.2016
comment
Какую версию gcc/clang вы используете? -Wconversion вызвать предупреждение в gcc 4.4+ и clang 3+.   -  person Holt    schedule 19.07.2016
comment
О, мальчик, прости. Я перепутал два сценария компиляции bash, которые использовал. Поэтому я думал, что у меня включен -Wconversion, но на самом деле это было не так. -Wconversion действительно помогает.   -  person Tobias Hermann    schedule 19.07.2016
comment
Если вы используете С++ 11 (или новее), вы должны инициализировать свое значение с помощью квадратных скобок, например. float f{d};, так как {} препятствует сужению.   -  person Holt    schedule 19.07.2016


Ответы (1)


Мне жаль. Я перепутал два сценария компиляции bash, которые использовал. Поэтому я думал, что у меня включен -Wconversion, но на самом деле это было не так. -Wconversion действительно помогает.

person Tobias Hermann    schedule 19.07.2016