Предупреждение о порядке инициализации полей, сравнении со знаком и неиспользуемых переменных в VC ++ и Sun Studio - PullRequest
5 голосов
/ 29 июня 2011

Я надеюсь включить предупреждения для следующих проблем компиляции 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

РЕДАКТИРОВАТЬ: Вне разрешения подписанодля предупреждений о сравнении без знака в VC ++ все остальные параметры не представляются возможными.

1 Ответ

2 голосов
/ 29 июня 2011

В Visual Studio, Project Properties, C ++, установите уровень предупреждения 4 (максимум) - компилятор VC ++ выдает все возможные предупреждения. AFAIK, предупреждения 1 и 2 сообщаются, и порядок инициализации поля не сообщается компилятором VC ++.

...