Часть моего кода зависит от значения символа препроцессора:
int a()
{
#if SDK_VERSION >= 3
return 1;
#else
return 2;
#endif
}
Сравнение зависит от значения SDK_VERSION. Ожидается, что оно будет целым числом или чем-то, что сравнивается с целым числом, в данном случае 3. Если SDK_VERSION будет чем-то, что нельзя сравнить с целым числом, возникнет ошибка компиляции.
Есть ли способ прервать компиляцию, если SDK_VERSION не имеет ожидаемого типа? For example:
#if type(SDK_VERSION) != int # Does not compile, I know
#error "SDK_VERSION must be an integer."
#endif