Как я уже прокомментировал, я не верю, что заявления препроцессора - это то, что вы ищете. Чтобы использовать условный препроцессор, model.model_kernel_type
должна быть константой, определенной с помощью оператора #define
.
Я не знаю внутренностей оператора switch, поскольку это может быть O (n) или O (1) в зависимости от того, как компилятор его обрабатывает. Если вам нужно быть уверенным в сложности времени O (1), вы можете просто заменить оператор switch на таблицу соответствия следующим образом:
float model_type_results[4] = {result1, result2, result3, result4};
...
return model_type_results[model.model_kernel_type];