Хорошие подходы к принудительной сборке с повышенным уровнем предупреждений для нового кода C ++

Я унаследовал большую базу кода C ++ для нескольких приложений Windows, которая успешно используется многими клиентами.

  • База кода большая,> 1 миллион LOC.
  • История базы кода составляет 15 + лет.
  • В некоторых областях в базе кода преобладает стиль программирования C и / или не очень современный стиль C ++, например, не используются стандартные коллекции и алгоритмы C ++.
  • База кода, к сожалению, была скомпилирована только с уровнем предупреждения 2 ( / W2 в Visual C ++). Я хотел бы повысить уровень до 3 (/ W3), чтобы повысить безопасность и подготовиться к 64-битной версии.

Самым проблемным моментом при повышении до уровня предупреждения 3 является множество полученных предупреждений о несоответствиях со знаком / без знака, и я понимаю, что решить все эти проблемы для существующей кодовой базы будет очень большой задачей.

Что было бы хорошим подходом для обеспечения и обеспечения того, чтобы новый код, привязанный к кодовой базе, компилировался с повышенным уровнем предупреждений?

В более общем плане вопрос можно было бы перефразировать на то, как вы обеспечиваете повышенное качество программирования в новых принятых код. Если вы ничего не сделаете, новый код, по моему опыту, будет иметь тенденцию изменяться и стилизоваться так же, как существующий код, а не улучшаться до более современных стандартов.

5
задан Michael S. 1 January 2016 в 22:16
поделиться