Я работаю над проектом, который использует код из другого проекта, и этот другой код дает мне кучу предупреждений во время компиляции.Я не хочу менять этот код (мой проект - всего лишь тонкая оболочка вокруг их кода, и я хочу иметь возможность загружать обновления без внесения исправлений все время), поэтому я хотел бы отключить эти предупреждения, чтобы сосредоточиться натолько мой собственный код.
К сожалению, я не вижу, где это задокументировано!
Я получаю ошибку:
warning: no case matching constant switch condition '2'
Я посмотрел в руководстве и пытались -Wno-switch
, -Wno-switch-bool
и -Wno-switch-enum
, но ни одно из них не убирает это предупреждение.Я не вижу, где в руководстве указано это предупреждающее сообщение.
В Google я не смог найти ни одного параметра командной строки, соответствующего тексту ошибки.
Используя GitHub, я смог найти источник LLVM, который запускает тест для этого предупреждения , но мне не повезло, что я вернул его обратно к опции -W
, чтобы отключить его.
Чего мне не хватает?
Вот код, который воспроизводит ошибку:
enum En { A, B, C };
template <En how> void foo() {
int x = 0, y = 5;
switch (how) {
case A: x *= y; break;
case B: x += y; break;
}
}
template void foo<C>();
int main(void)
{
return 0;
}