警告VC++和Sun Studio中的字段初始化顺序,签名比较和未使用的变量

Nic*_*ick 5 c++ sunstudio visual-c++

我希望为以下C++编译问题和相应的编译器启用警告:

  1. 未使用的变量 - Sun Studio CC

    例: void m() { int i = 10; }

  2. 签署无符号比较 - VC++Sun Studio CC

    例: if ((unsigned) 10 < -1);

  3. 错误的字段初始化顺序 - VC++Sun Studio CC

    例: class A { int i, j; A() : j(0), i(0) {} };

所有这些都被GCC捕获,我想在VC++和Sun Studio中启用它们.

bash-4.1$ g++ -Wall main.cpp
main.cpp: In function ‘void m()’:
main.cpp:1: warning: comparison between signed and unsigned integer expressions
main.cpp:1: warning: unused variable ‘i’
main.cpp: In constructor ‘A::A()’:
main.cpp:1: warning: ‘A::j’ will be initialized after
main.cpp:1: warning:   ‘int A::i’
main.cpp:1: warning:   when initialized here
Run Code Online (Sandbox Code Playgroud)

编辑:外部启用在VC++上签名无符号比较警告,所有其他选项似乎不可能.

Ale*_*x F 2

在 Visual Studio、项目属性、C++ 中,将警告级别设置为 4(最大) - VC++ 编译器会给出所有可能的警告。AFAIK,报告警告 1 和 2,并且 VC++ 编译器不报告字段初始化顺序。