Почему true==151
считается небезопасной операцией, в то время как true==true
, который фактически имеет такое же выражение, нет. Более того, почему true==151
никогда не будет правдой, в отличие от true&&151
?Какова мотивация для предупреждения компилятора C4806 (номер == bool value)?
cout<<(true==151); //0 and it gives compiler warning C4806
cout<<(true==true); //1 no warning
if(true==151)cout<<"1"; //"0" and warning again
if(true&&151)cout<<"1"; //1 no warning
if(151)cout<<"1"; //1
Само предупреждение C4806
'==': небезопасный режим: нет значения типа 'BOOL' повышен до типа 'Int' может равняться заданной постоянной
Это хорошая идея, чтобы включить все сообщение, а не только его код. Верьте или нет, но многие из нас не передали все коды ошибок Microsoft в память. – molbdnilo
Различные типы. Действительно ли желтый? – ZDF
@ZDF Есть ли у истины цвет? – molbdnilo