如何为未完成的枚举到字符串的转换生成编译错误
How to generate compile error for not completed enum to string conversion?
我们有这样的东西:
Enum IdEnum
{
Id_1,
Id_2
}
GetNameById(IdEnum Id) : string
{
switch Id
{
case Id_1 : return "1";
case Id_2 : return "2";
}
}
如果我们在枚举中添加Id_3,但不在 GetNameById 中添加 case 语句,有没有办法生成编译错误?
https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html:
-Wswitch 警告 每当 switch 语句具有枚举类型的索引并且缺少一个或多个命名代码的大小写时发出警告 列举。(默认标签的存在可防止此警告。 枚举范围之外的事例标签在以下情况下也会引发警告 使用此选项(即使存在默认标签)。此警告 由 -Wall 启用。
-wswitch-enum 每当 switch 语句具有枚举类型的索引并且缺少一个或多个命名代码的大小写时发出警告 该枚举。枚举范围之外的案例标签也 使用此选项时引发警告。唯一的区别 -Wswitch,此选项是此选项发出有关省略枚举代码的警告,即使存在默认标签。
相关文章:
- C++使用params创建线程函数会导致转换错误
- 为什么g++在未执行的代码处标记强制转换错误
- 为什么C++在将浮点数转换为字符时没有显示缩小转换错误?
- 如何在构建对象堆栈时解决转换错误?
- 执行具有转换错误的过程
- 指向类成员函数的指针中存在类型转换错误
- 为什么我在这里收到C++没有已知的转换错误?
- 增加图形转换错误
- 尝试向 COM 对象添加另一个接口时出现静态强制转换错误 C2440
- 返回带有另一个类的数据成员的构造函数?遇到转换错误?
- 指针和双重转换错误,代码没有
- 自定义函数转换错误?
- 将 C 程序转换为具有大量字符* 和无符号字符转换错误的C++
- 如何在我使用过的Arduino库之一中固定构造函数中的转换错误
- 试图使用strCMP时的char转换错误
- 我在 TSP 的C++解决方案中遇到转换错误
- "double(*)(string, double, double)"尝试传递函数C++时"double"转换错误
- 此语法中的构造函数转换错误
- Opengl 精度转换错误编译错误 E0415
- 无效的转换错误和无效的类型