我正在一个使用另一个项目中的代码的项目中,并且该其他代码在编译期间给了我很多警告。我不想更改该代码(我的项目只是它们的代码的一个薄包装,并且我希望能够一直进行更新而不进行补丁修复),所以我想禁用这些警告,以便我专注于只是我自己的代码。
很遗憾,我看不到该文件的记录位置!
我收到的错误是:
warning: no case matching constant switch condition '2'
我有looked in the manual,并尝试过-Wno-switch
,-Wno-switch-bool
和-Wno-switch-enum
,但没有一个使这个警告消失。我看不到手册中列出了此警告消息。
使用Google时,我找不到与错误文本匹配的任何命令行选项。
使用GitHub,我能够找到runs a test for this warning的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;
}
答案 0 :(得分:1)
恐怕没有this
标志可以特别禁止显示此警告。
如果有,那么诊断将是:
-Wno-<what>
您只能使用warning: no case matching constant switch condition '2' [-W<what>]
来禁止所有所有警告,以禁止显示该警告,
我当然不建议。