Цитата:
Пока о физической компиляции сырцов речи не шло - экзамен, вся проверка "устно".
|
Если тип не известен то проверка if(val !=0) еще более бредовей чем if(val). Если тип числовой то они идентично правельные. Если итоговый тип выражения bool то !=0 хоть и работает (если это не тип в c++11 с explicit bool() - val !=0 не будет компилироваться ), но тоже бред.
Цитата:
Например гнуси вообще наплевать что ей кастить в bool, и в некоторых случаях она это делает так, что хоть стой, хоть падай - например при касте енумов
|
Ну к 0 то они все одинаково кастанутся, а вот что за int - ненулевое значение будет сильно зависит от знаковости представления enum.
Но реальные проблемы я поимел с кастом к int энумов только из битовых полей.
"Enum m_enum: N;" - вот тогда в сочетании со знаковостью значение действительно очень неожиданно преобразуется на разных платформах.