QT创建者没有警告
no warnings in QT creator
我几乎看不到程序中的任何警告。
我的CPP文件:
#include <iostream>
using namespace std;
int main()
{
long long int ll = 100000000067;
unsigned short sh = ll; //no warning here, why?
cout << sh << " " << ll << endl;
int s; //warning only here: warning: unused variable ‘s’ [-Wunused-variable]
return 0;
}
我的pro文件:
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
QMAKE_CXXFLAGS += -Wall -Wextra -pedantic
我尝试将项目与CMAKE一起使用,但结果是相同的。
根据GCC文档
-wconversion
警告可能会改变价值的隐式转换。这包括真实和整数之间的转换,例如x double时的ABS(X);签名和未签名之间的转换,例如Unigned UI = -1;转换为较小类型,例如SQRTF(M_PI)。请勿警告诸如ABS((int)X)和UI =(unsigned)-1之类的显式演员,或者如果不像ABS中的转换更改值(2.0)。可以使用-wno-sign-conserverion禁用有关签名整数和未签名整数之间转换的警告。对于C ,还警告要使用户定义的转换混淆过载分辨率;以及从未使用类型转换操作员的转换:转换为void,相同类型,基类或对它们的引用。除非明确启用-wsign -conversion,否则在C 中默认禁用有关签名和未签名整数之间转换的警告。
。
对我来说,您的示例-Wconversion
生成
~/main.cpp:9: warning: conversion to 'short unsigned int' from 'long long int' may alter its value [-Wconversion]
unsigned short sh = ll; //no warning here, why?
^
相关文章:
- 警告处理为错误这里有什么问题
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- cppcheck在const std::string[]上引发警告
- GCC对可能有效的代码抛出init list生存期警告
- 如何在BST的这个简单递归实现中消除警告
- 关于std::move的使用,是否有编译警告
- g++ 在某个类成员未初始化时不发出警告
- 如何处理来自核心指南检查器的关于gsl::at的静态分析警告
- 使用typeid警告未使用的变量
- 示例C++项目编译中的警告
- 警告:在函数返回类型 [-Wignore 限定符] 时忽略类型限定符
- 如何修复编译器警告 C6386 和 C6385?
- 返回语句后的代码,没有警告
- 获取隐式转换溢出从无符号到已签名的警告
- 编译器警告:执行到达值返回函数的末尾而不返回值
- 在未链接的部分上生成警告
- 警告 C4552:">>":未使用表达式的结果
- 禁止显示由于常量为零而比较始终为假的警告
- C++ 警告:将新创建的 gsl::owner<> 分配给非所有者
- QT创建者没有警告