Проклятый Intellisense
В процессе реорганизации кода получил 4 ошибки компиляции:
Ошибка C2065 ibp_task_controller_state__cancelled: необъявленный идентификатор
Ну, думаю, приплыли. Смотрю первый случай:
switch(const t_ibp_task_state task_state=task_start_result.controller->get_task_state()) { case ibp_task_state__done: //... case ibp_task_controller_state__cancelled: //<---- Вот здесь, Карл. //... };
Смотрим на объявления констант:
enum t_ibp_task_state { //... ibp_task_state__cancelled=2, //... };//enum t_ibp_task_state enum t_ibp_task_controller_state { //... ibp_task_controller_state__cancelled=2, //... };//enum t_ibp_task_controller_state
Фух.
CVS про проблемную строчку кода говорит
1.1 (Dima 17-Nov-16): case ibp_task_controller_state__cancelled:
Но по факту, код написан гораздо раньше — в конце 2012, начале 2013. В 2016 была реорганизация.
Скорее всего Intellisense подсунул, а я с радостью нажал Enter.
Остальные 3 случая идентичны первому — copy&paste китаец жеж.
Пора уже на enum class переходить. Пора.
PS. Интересно, почему статические анализаторы кода меня в эту проблему не ткнули?