当我使用g ++ 4.1.2并启用-Wall -Wextra -Wconversion编译以下代码而没有任何警告时,我感到非常惊讶.
我希望g ++向我展示每一个警告,以避免潜在的伤害.我必须坚持使用g ++ 4.1.2.
#include <stdint.h>
#include <string>
using namespace std;
int main()
{
uint8_t u1=1;
uint64_t u64=1000;
string s1="";
u1=u64; // want warning here
s1=u64; // want warning here
s1=u1;
}
Run Code Online (Sandbox Code Playgroud)
恐怕4.3之前的GCC似乎不支持这个。4.2 和 4.3 之间的描述-Wconversion发生了变化,以反映新的警告行为,并且没有迹象表明 4.3 之前的 GCC 会对此进行检查。