c++ GCC切换到枚举,保留缺少的警告,但使用默认值

使用GCC,如果您打开一个枚举值,其中一个枚举缺少一个case语句,将发出警告.当添加默认项目时,警告将不再被发出,这在一般情况下是有意义的.

有没有办法使用默认语句,并且仍然有警告,如果不是所有的枚举值都被覆盖?由于我的功能可能会处理不纯的输入,我想覆盖通用的情况,但仍然会收到关于缺少枚举情况的编译器警告.

目前我最终在switch语句之后分配一个默认值.

最佳答案
-Wswitch-enum,但不幸的是只有最新的版本支持这一点.

(你当然可以通过在交换机之外使用goto来模拟你想要的行为,省略默认行为,但是我强烈建议不要这样做,这很丑,而别人读你的代码会有一个WTF的经验.)

转载注明原文:c++ GCC切换到枚举,保留缺少的警告,但使用默认值 - 代码日志