c++ - 如何获得编译警告

标签 c++ g++

当我使用启用了 -Wall -Wextra -Wconversion 的 g++ 4.1.2 在没有任何警告的情况下编译以下代码时,我感到非常惊讶。

我希望 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;
}

最佳答案

恐怕 4.3 之前的 GCC 似乎不支持这个。 -Wconversion 的描述在 4.2 和 4.3 之间发生了变化,以反射(reflect)新的警告行为,并且没有迹象表明 4.3 之前的 GCC 会对此进行检查。

关于c++ - 如何获得编译警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3210661/

相关文章:

windows - pkg-config:找不到命令,在 Windows 7 上使用 cygwin

c++ - 当同一个信号可以来自多个地方时使用 Qt 的信号和槽

c++ - 双向链表,tail 的问题

c++11 在类定义中为可变大小 std::array 创建数据成员

c++ - 如果我没有显式实例化 g++(使用 -fno-implicit-templates)从哪里获取模板定义?

c++ - G++ 4.9.2和8.2.0-具有默认lib路径搜索./../lib目录的最终二进制文件的依赖性(隐式RPATH问题)

c++ - 来自 QMetaProperty 的类名

c++ - GLFW_PRESS抛出 “lvalue required as left operand of assignment”

c++ - undefined reference yyparse C++

c++ - 如何将一个C实现文件拆分为多个具有单个头文件的文件