Неявное преобразование C++ из double в bool опасноC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Неявное преобразование C++ из double в bool опасно

Сообщение Anonymous »

Я уже второй раз совершаю большую ошибку, создавая переменную типа bool вместо типа double. Например, рассмотрим

Код: Выделить всё

double f()
{
return true;
}
bool something()
{
return 0.0;
}
double g()
{
bool x = 0.0;  // (1)
if (something()) {
x = f();  // where f() is a function returning a double
}
return x;
}
Я думаю, что компилятор должен сказать мне, что это плохо, но мой компилятор (g++) не выдает небольшое предупреждение с -Wall... и это приводит к ошибке позже в тестах.
Есть ли какая-то возможность для gcc/g++ иметь предупреждения (например, в строке 1, это явно плохо)?

Подробнее здесь: https://stackoverflow.com/questions/359 ... -dangerous
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»