Цитата:
Сообщение от rsa
ну например тем, что в данном случае тип не числовой а пользовательский, а объявления его в зоне видимости нету. в результате одному аллаху известно, однозначно ли его преобразование в bool или нет...
|
Как раз для пользовательских типов более логично использовать if(val) чем if (val !=0) потому что одному богу известно что там числовое возращается и есть ли вообще неявный каст к числовому. А вот каст к bool или отсутствует (что сразу поймем) или будет чем-то осмысленным исходя из значений этого пользовательского типа. C++11 кстати добавил хорошую поддержку - позволяет bool-каст делать explicit и работающим только в таких контекстах как if(). Вообщем с большей вероятностью ожидать разумного определения bool-каста от типа (конечно в зависимости от типа) чем int-каста.