Мне нравится (bool) намного больше, но он генерирует предупреждения. Как мне избавиться от предупреждений?
У меня есть такой код:
bool something_else = 0;
void switcher(int val = -1){
if(val != -1){
something_else = (bool)val;
}else{
something_else ^= 1;
}
}
Должен ли я просто сделать это, как все, и использовать '!!' или заставить его как-то скрывать предупреждающие сообщения при использовании (bool)? Или это "!!" на самом деле быстрее, чем (bool)?
Я хотел бы использовать (bool), и поэтому я должен скрыть предупреждение, но как?
Редактировать: Visual Studio 2008 я использую, извините, я забыл сказать.
Редактировать 2: Предупреждающее сообщение warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
И оно появляется на линии something_else = (bool)val;
И на линии something_else = val;
Но не на линии something_else = !!val;
Проблема в том, что я хочу, чтобы он уважал, что я хочу преобразовать его в логическое значение. Я не хочу скрывать все логические предупреждения, потому что иногда они спасли мою задницу.