warning: enumeration value ‘FEA_INT’ not handled in switch

编译时候报这个警告,看了下代码,是有一个枚举类型,

num fea_data_type {FEA_NONE = -1,FEA_INT = 0,FEA_DOUBLE = 1,FEA_STRING = 2,FEA_FLOAT_VECTOR = 3,FEA_UINT64 = 4,FEA_SHARED_VOID = 5,FEA_WEIGHTED_STRING = 6,FEA_VOID_X = 7,FEA_STRING_REF = 8,FEA_INT64 = 9,FEA_UINT32 = 10,};

然后在某个函数中对于枚举类型中的某几个通过switch()来控制对应type的处理流程:

~FeatureValue() {switch (type_) {case FEA_SHARED_VOID:((std::shared_ptr<void>*)&data_)->~shared_ptr();break;case FEA_STRING:((std::string*)&data_)->~basic_string();break;case FEA_FLOAT_VECTOR:((std::vector<float>*)&data_)->~vector();break;}
}

枚举类型中声明了11种,但是在处理的时候却只针对3种进行了操作。
由于没有给每种类型对应的处理逻辑,所以编译器告警。
解决方法就是让处理流程覆盖所有的枚举类型。

方法有2:
给所有类型加上case,如果没有处理逻辑直接break;
直接加上default:break;

在这种场景下通过方法二,编译成功

  ~FeatureValue() {switch (type_) {case FEA_SHARED_VOID:((std::shared_ptr<void>*)&data_)->~shared_ptr();break;case FEA_STRING:((std::string*)&data_)->~basic_string();break;case FEA_FLOAT_VECTOR:((std::vector<float>*)&data_)->~vector();break;default:break;}}

warning: enumeration value ‘FEA_INT‘ not handled in switch相关推荐

  1. enumeration value 'xxxxx' not handled in switch警告

    问题描述: 使用switch结构时出现警告"enumeration value 'xxxxx' not handled in switch" 解决方案: 在switch结构末添加语 ...

  2. “enumeration value ‘xxxxx‘ not handled in switch“警告

    typedef enum {HE=0,SH }PARAM_TYPE; void fun(PARAM_TYPE pe) {switch (pe) {case HE:cout<<

  3. enumeration value ... not handled in switch

    今天就遇到了类似的warning,google了一下,发现这里面竟然牵涉到这么多details. http://gcc.gnu.org/ml/gcc/2005-01/msg00594.html 转载于 ...

  4. 【转】GCC警告选项例解 -- 不错

    原文网址:http://blog.csdn.net/hcx25909/article/details/7383716 程序员是追求完美的一族,即使是一般的程序员大多也都不想看到自己的程序中有甚至那么一 ...

  5. gcc较高版本的一些编译警告收集

    最近整理了下代码警告问题.这里记录一下. 在以前某个项目上竟然用-w把gcc的警告给关闭了,怪不得编译代码完全没警告,多漂亮的代码! 1.未使用变量.未使用函数返回值,未使用变量: warning: ...

  6. centos 7.4 + postgresql 10.1 + pg_amqp

    上传 pg_amqp 到 /tmp 目录下 [root@tpg-1 tmp]# yum install lrzsz [root@tpg-1 tmp]# rz[root@tpg-1 tmp]# ls - ...

  7. Faster-rcnn在caffe的实践操作+VOC2007(在自己电脑花了4天时间)完整版

    文件夹介绍 py-faster-rcnn –caffe-fast-rcnn:caffe框架文件 –data:预训练模型.faster-rcnn模型.数据集链接 –experiments:存放配置文件以 ...

  8. 编译caffe报错问题

    error: in file included from ./include/caffe/util/device_alternate.hpp:40:0, from ./include/caffe/co ...

  9. iOS:消除项目中警告

    引言: 在iOS开发过程中, 我们可能会碰到一些系统方法弃用, weak.循环引用.不能执行之类的警告. 有代码洁癖的孩子们很想消除他们, 今天就让我们来一次Fuck 警告!! 首先学会基本的语句: ...

最新文章

  1. BZOJ4771 七彩树(dfs序+树上差分+主席树)
  2. linux 读取文件夹命令,Linux系统编程_1_文件夹读取(实现简单ls命令)
  3. 【C语言】利用二维数组输出成绩
  4. 2017.3.25 SJY摆石子 思考记录
  5. greenplum mysql jdbc_Kylin设置JDBC配置greenplum数据源
  6. iOS UIWebView 之 UIProgressView
  7. mongodb集群分片环境搭建
  8. Server 2012 Log off 按键
  9. Qt QString to char*
  10. mysql子查询去重,将MySQL去重操作优化到极致之三弹连发(一):巧用索引与变量...
  11. Java 定时任务@Scheduled使用
  12. Windows卓越性能概念以及如何打开
  13. 怎樣制作线段动画_线条动画 怎么制作随意运动的线条动画?线条动态视频如何制作?线条动画制作教程...
  14. Vue3状态管理-小菠萝Pinia快速入门学习
  15. redis短信发送限制
  16. 无涯教程: Laravel 8 - 队列介绍
  17. 怎么把PPT转成EXE格式,详细步骤
  18. nodejs mysql knex_使用knex创建postgresql表knex迁移
  19. GLES2.0中文API-glGet
  20. flutter 状态管理 flutter_bloc 的使用以及总结

热门文章

  1. 【java】小票:设计一张奶茶店的小票
  2. 计算机辅助教学的网络化,浅谈计算机辅助教学的发展和趋势
  3. 梅特勒.托利多-称重上位机软件
  4. Chocolat.js – 响应式的 jQuery Lightbox 插件
  5. 智能驾驶——传感器布置
  6. 短视频如何创作出吸引人的爆款文案
  7. 【显著性物体检测】【ECCV2018】Reverse Attention for Salient Object Detection【论文笔记】
  8. OBR Library for Android-SEO狼术
  9. 强化学习的学习之路(五十一)2021-02-20 Retrace
  10. 动态规划之经典的鸡蛋坠楼问题详解