enum, switch, default, warnings
От: Roman Odaisky Украина  
Дата: 21.07.08 17:17
Оценка:
enum E { A, B, C };

int getE();

switch((E)getE())
{
case A: handleA(); break;
case C: handleC(); break; // ой, потеряли B!

default: oops("Value outside enum!");
}

Как сделать то же самое, но чтобы компилятор ругался, если я не обработаю часть значений enum? Если я выброшу default, то предупреждения будут («enumeration value ‘B’ not handled in switch»), но потеряется поведение по умолчанию. Можно вместо break сделать goto, а сразу за switch разместить код обработки ошибки. А как сделать по-человечески?
До последнего не верил в пирамиду Лебедева.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.