- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
bool flag = getFlag();
switch (flag)
{
case true:
// do something
break;
case false:
// do something else
break;
default:
// do something more (??!)
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
bool flag = getFlag();
switch (flag)
{
case true:
// do something
break;
case false:
// do something else
break;
default:
// do something more (??!)
}
бывает же...
и код становится осмысленным ;)))
зы: Раньше специально объявлял тип tool, имеющий значение default.
и даже с С++ оно не обязательно true v. false - всегда надо проверять !false v. false. потому как false == 0, а все остальные значения есть true.
и как только ты начнешь конвертить char/short/int/long в bool/_Bool - без магического !! - не жди чудес.
6.3.1.2 When any scalar value is converted to _Bool, the result is 0 if the value compares equal
to 0; otherwise, the result is 1.
Чудеса, да ?
GCC 4.3.4 && aCC 06.06 оба делают как говорит стандарт.
а Солярная СанСтудио мля еще даже толком с99 не держит... ну да это говно еще много чего не держит.