estoy esperando para que las advertencias para los siguientes problemas de compilación de C++ y los correspondientes compiladores:de advertencia en el orden de campo init, firmó comparación, y VARs no utilizados en VC++ y Sun Studio
las variables utilizadas - Sun Studio CC
Ejemplo:
void m() { int i = 10; }
Firmado a la comparación sin signo - VC++ y Sun Studio CC
Ejemplo:
if ((unsigned) 10 < -1);
incorrecto orden de los campos de inicialización - VC++ y Sun Studio CC
Ejemplo:
class A { int i, j; A() : j(0), i(0) {} };
Todos ellos están atrapados por GCC y me gustaría habilitarlos en VC++ y 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
EDIT: Fuera habilitación firmado a las advertencias de comparación sin signo en VC++, no parecen todas las demás opciones a ser posible.
¿Alguien sabe si este sigue siendo el caso con vc2015? ¿Alguna bandera especial en alguna parte? –
Aún no. https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/2553854-c-compiler-should-warn-about-wrong-member-initia – EricLaw