5 Stimmen

Warnung zur Feldinitialisierungsreihenfolge, zur Vorzeichenvergleich und zu nicht verwendeten Variablen in VC++ & Sun Studio

Ich hoffe, Warnungen für die folgenden C++-Kompilierungsprobleme und entsprechenden Compiler zu aktivieren:

  1. Unbenutzte Variablen -- Sun Studio CC

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

  2. Vergleich von Vorzeichen zu Unsigned - VC++ und Sun Studio CC

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

  3. Falsche Feldinitialisierungsreihenfolge - VC++ und Sun Studio CC

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

All diese Probleme werden von GCC erkannt und ich möchte sie auch in VC++ und Sun Studio aktivieren.

bash-4.1$ g++ -Wall main.cpp
main.cpp: In Funktion ‘void m()’:
main.cpp:1: Warnung: Vergleich zwischen vorzeichenbehafteten und unvorzeichenbehafteten Ganzzahlausdrücken
main.cpp:1: Warnung: ungenutzte Variable ‘i’
main.cpp: In Konstruktor ‘A::A()’:
main.cpp:1: Warnung: ‘A::j’ wird nach initialisiert
main.cpp:1: Warnung:   ‘int A::i’
main.cpp:1: Warnung:   beim Initialisieren hier

EDIT: Abgesehen von der Aktivierung von Warnungen für den Vergleich von Vorzeichen zu Unsigned in VC++, scheinen alle anderen Optionen nicht möglich zu sein.

2voto

Alex F Punkte 40874

In Visual Studio, Projekt Eigenschaften, C++, stellen Sie die Warnstufe auf 4 (maximal) ein - der VC++ Compiler gibt alle möglichen Warnungen aus. Soweit mir bekannt ist, werden Warnungen 1 und 2 gemeldet, und die Initialisierungsreihenfolge von Feldern wird vom VC++ Compiler nicht gemeldet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X