Qt:warning: control reaches end of non-void function
编译环境:Qt5.12.2
先看一下C++11中Lambda表达式的用法(节选自百度百科
):
ISO C++ 11 标准的一大亮点是引入Lambda表达式。基本语法如下:[capture list] (parameter list) -> return type { function body }其中除了“[ ]”(其中捕获列表可以为空)和“复合语句”(相当于具名函数定义的函数体),其它都是可选的。
它的类型是单一的具有成员operator()的非联合的类类型,称为闭包类型(closure type)。
C++中,一个lambda表达式表示一个可调用的代码单元。我们可以将其理解为一个未命名的内联函数。
它与普通函数不同的是,lambda必须使用尾置返回来指定返回类型。
Qt程序构建后警告:control reaches end of non-void function [-Wreturn-type]
它的意思是:控制到达非空函数的末尾
也就是说一些本应该带有返回值的函数运行到达末尾时并没有返回任何值
警告出现的代码如下:
bool setting::CheckNetInfo()
{static bool status[2]={0};system("ifconfig eth0 up");system("ifconfig usb0 up");memset(status, 0 ,sizeof(status));QList<QNetworkInterface> ifaces = QNetworkInterface::allInterfaces();for (int i = 0; i < ifaces.count(); i++){QNetworkInterface iface = ifaces.at(i);if (((iface.flags().testFlag(QNetworkInterface::IsUp))&& (iface.flags().testFlag(QNetworkInterface::IsRunning))&& (!iface.flags().testFlag(QNetworkInterface::IsLoopBack))&& ((iface.name() == ETH_IF_PPP0) ||(iface.name() == ETH_IF_PPP1)||(iface.name() == ETH_IF_ETH1) ||(iface.name() == ETH_IF_USB0)))||((iface.name() == ETH_IF_NAME) ||(iface.name() == ETH_NAME_SERVER))){for (int j=0; j<iface.addressEntries().count(); j++)//addressEntries返回此接口拥有的IP地址列表及其关联的网络掩码和广播地址,allAddresses()函数仅获取活动接口的IP地址{qDebug() << iface.name()<< "isConnected" << endl;if(iface.name() == ETH_IF_USB0)status[0] = true;else if(iface.name() == ETH_IF_NAME)status[1] = true;}if(status[0] == true && status[1] == true){m_netWorkInit = true;}} else {for (int j=0; j<iface.addressEntries().count(); j++){qDebug() << iface.name()<< "isNotConnected" << endl;}m_netWorkInit = false;}}
}//此处出现警告
这个是bool型函数,最后未返回一个false或true,导致警告出现。最初在最后一个if和else函数体内加了return true;
和return false;
,但是还是有警告。最后发现应该在函数体最后一个花括号前加bool型返回值才能消除警告。
lambda函数体内部允许没有返回值,如果有返回值,函数体内部都必须有一个返回值,且函数体内的返回值类型必须保持一致。
Qt:warning: control reaches end of non-void function相关推荐
- warning: control reaches end of non-void function:错误解决
warning: control reaches end of non-void function:错误解决 用gcc编译一个程序的时候出现这样的警告: warning: control reache ...
- warning: control reaches end of non-void function
用gcc编译一个程序的时候出现这样的警告: warning: control reaches end of non-void function 它的意思是:控制到达非void函数的结尾.就是说你的一些 ...
- oc错误:control reaches end of non-void function
control reaches end of non-void function 控制到达非void函数的结尾.也就是说非void函数没有返回值.ß
- QT:布局管理器消息盒子对话框
让组件在水平和垂直方向对齐 有三种常用布局管理器: 水平,QHBoxLayout 垂直,QVBoxLayout 网格,QGridLayout(使布局好的界面嵌套到主窗口) 1.让组件大小固定 修改属性 ...
- logistic回归报错问题:Warning messages: 1: glm.fit:算法没有聚合 2: glm.fit:拟合機率算出来是数值零或一
logistic回归的时候报错问题包括下面两种 Warning: glm.fit: algorithm did not converge Warning: glm.fit: fitted probab ...
- 温酒读Qt:QObject中篇1—— Q_OBJECT的隐秘角落
一.Q_OBJECT 宏 的隐秘 话接上一篇链接: 温酒读Qt:QObject 序篇,今天我们来揭露下QObject的靓丽一点(别问我是3点.4点还是多少点中的一点). 对于已经浅尝Qt信号和槽函数的 ...
- QT:在QTableView中使用各种自定义委托
原文地址::https://blog.csdn.net/lhchen922/article/details/38367719 相关文章 1.QT:在QTableView中使用各种自定义委托----ht ...
- Qt:QChart绘图介绍(主要包含类:QChart,QTableWidget,QGridLayout)
Qt:QChart绘图介绍(主要包含类:QChart,QTableWidget,QGridLayout) 首先点击[打开]摁键,从excel中读入相关数据 之后点击[计算]摁键,将数据进行处理,并将部 ...
- Squish for Qt:为Qt应用量身打造的自动化测试工具
转载地址:https://mp.weixin.qq.com/s?__biz=MzI5MzA3NzU3OA==&mid=2649661399&idx=1&sn=7b584cfc5 ...
- IDEA中提示:Warning:java: 源值1.5已过时, 将在未来所有发行版中删除
问题描述: 运行Java Web项目时,IDEA中提示:Warning:java: 源值1.5已过时, 将在未来所有发行版中删除 解决方法: 1. 打开[File]-[Project Structur ...
最新文章
- 云端应用SQL注入攻击
- CentOS各版本ISO下载地址
- Stanford UFLDL教程 自编码算法与稀疏性
- Swoole报错Failed to execute ‘send’ on ‘WebSocket’: Still in CONNECTING state. a
- asp php java_ASP\JSP\PHP相比各有什么优缺点?
- JS判断一个数字是否为小数
- ionic应用在mac上使用Xcode7.2(7C68)进行iphone真机测试
- Java使用iText生成word文件的解决方案
- idea运行maven:No URLs will be polled as dynamic configuration sources
- CCF201403-4 无线网络(100分)
- 前端必知必会HTTP请求系列(一)了解Web及网络基础
- 转载:LTE中的各种ID含义
- 小爱音箱连接Windows蓝牙没有声音
- 计算机图形学 :中点画圆法
- 语言栏多出EN、JP等键盘布局的解决方案
- Java里用Frame框架写流星雨
- 传递VB数组给DLL中的函数
- 【Linux学习】基本操作
- 自动驾驶的核心技术是什么----一篇文章带你揭开自动驾驶的神秘面纱
- html输入框不显示cookie_【HTML教程】网页制作常见问题解答二