Проклятый 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. Интересно, почему статические анализаторы кода меня в эту проблему не ткнули?

Leave a Comment