当前位置: 首页 > 知识库问答 >
问题:

在交换机中捕获混合枚举

单于帅
2023-03-14

在一些遗留代码中,我有很多枚举,和一个巨大的开关案例。我想测试开关是否具有纯枚举类型。胡说八道的例子:

typedef enum EN
{
    EN_0,
    EN_1
} EN_T;

typedef enum DK
{
    DK_0,
    DK_1
} DK_T;

EN_T bar = ...
switch( bar )
{
    case EN_0:
    ...
    break;
    case DK_1: //<-- mixed type
    ...
    break;
}

这是错误的做法,编译器可以警告错误的做法或不违反标准的潜在错误,比如如果(a=1)...总是真的,完全合法,但可能是错误。

如果枚举上的开关不包含该枚举a.S.O的所有值,我可以让编译器发出警告。

它是首选的,如果编译器可以工作,但如果一个工具,如林特或类似的可以做到这一点,我也很高兴。

共有1个答案

赵钊
2023-03-14

不,不能将开关大小写标签限制为特定枚举的显式值。(你可以在C++中出于兴趣从C++11)。

如果您能够更改枚举值以使它们不相交,这可能会对您有所帮助,但仅限于在运行时。

 类似资料:
  • 在Rabbitmq中给出 交换 两个名为default和specific的队列 总共有两个路由密钥。具体而全面* 采用以下方案 我试图实施以下内容(没有成功) > 如果路由键为“all.specific”的邮件到达,则必须路由到特定队列 如果具有路由关键字“all.generic”的消息到达,则必须将其路由到默认队列 我尝试了两种不同的方法 1)交换类型“直接” 我无法在路由键中使用通配符,因此无

  • 当以下转换在将RDD写入文件之前执行时,它们之间有什么区别? 聚结(1,洗牌=true) 合并(1,洗牌=假) 代码示例: 它与collect()相比如何?我完全知道Spark save方法将以HDFS风格的结构存储它,但我更感兴趣的是collect()和shuffled/non shuffled coalesce()的数据分区方面。

  • 问题内容: 我定义了以下枚举 现在的印刷价值是 相反,我想打印枚举的值 要实现此功能可以做些什么? 问题答案: 您正在打印枚举 对象 。如果只想打印该属性,请使用该属性: 请参阅 对枚举成员及其属性 的 编程访问权限 部分 : 如果您有枚举成员并需要其名称或值: 如果只需要提供自定义字符串表示形式,则可以向枚举添加方法: 演示:

  • 交换机类 mininet.node.Switch 表示一个交换机的基类。 运行在 root 名字空间。主要包括 dpid、listenport 等属性。 mininet.node.IVSSwitch 表示一台 indigo 交换机(需要系统中已存在)。 mininet.node.OVSLegacyKernelSwitch 传统的 openvswitch 交换机,基于 ovs-openflowd。不

  • 匹配颜色 匹配不同图像中的颜色 “匹配颜色”命令可匹配多个图像之间、多个图层之间或者多个选区之间的颜色。它还允许您通过更改亮度和色彩范围以及中和色痕来调整图像中的颜色。“匹配颜色”命令仅适用于 RGB 模式。 注意:当您使用“匹配颜色”命令时,指针将变成吸管工具。在调整图像时,使用吸管工具可以在“信息”面板中查看颜色的像素值。此面板会在您使用“匹配颜色”命令时向您提供有关颜色值变化的反馈。请参阅查

  • 使用Spring 我的服务: 后来我实现了一些逻辑: 但它没有捕获关于重复密钥的报告的异常: 所以,我的角色并没有被扔出去。我的角色已经不存在了。在服务结束方法的事务提交期间引发异常。如何捕捉异常???或者如何以另一种方式在Spring中实现这种逻辑??