Стандартный исполнитель кода для Visual C++

Я ищу инструмент для обеспечения соблюдения наших стандартов кодирования C++. Мы работаем в Visual C++ на MS Windows.

  1. Должен работать в MS Windows с исходным кодом Visual C++.
  2. Должны отмечать отклонения от нашего стандарта
  3. Должен быть настраиваемым, чтобы обеспечить соблюдение нашего стиля и соглашений об именах, по крайней мере
  4. Не должен стоить намного больше 300 долларов на разработчика в год для 20 разработчиков.
  5. Было бы очень хорошо, если бы он мог хорошо интегрироваться с Visual Studio.
  6. Было бы очень хорошо, если бы его можно было легко настроить для автоматического запуска.
  7. Было бы неплохо, если бы он хорошо интегрировался с Subversion, Git, SmartBear's Collaborator и Cruise Control.

Ответы (2)

Я предлагаю вам взглянуть на PC-Lint от Gimpel :

  1. Должен работать в MS Windows на исходном коде Visual C++. Он фактически запускается из командной строки практически на любой платформе Windows, обрабатывающей код C/C++.
  2. Должны помечать отклонения от нашего стандарта. Это во многом зависит от вашего стандарта. Если вы используете отдельные части MISRA, вы можете просто адаптировать его для этого, однако, если у вас есть правило, согласно которому все функции должны быть названы в честь персонажей из книг доктора Цузе, которыми вы являетесь. наверное не повезло.
  3. Должен быть настраиваемым, чтобы, по крайней мере, обеспечить соблюдение нашего стиля и соглашений об именах. Опять же, это зависит от того, какие они есть.
  4. Стоимость лицензии на 20 разработчиков не должна превышать 300 долларов США на одного разработчика в год. Стоимость лицензии на локальную сеть на 10 пользователей в одном месте составляет 3500 долларов США. Каждый дополнительный пользователь стоит 300 долларов. Так что не далеко.
  5. Было бы очень хорошо, если бы он мог хорошо интегрироваться с Visual Studio. Интеграция доступна для большинства версий VS.
  6. Было бы очень хорошо, если бы его можно было легко настроить для автоматического запуска. Он запускается из пакетного файла, поэтому его можно интегрировать с инструментами CI, такими как Jenkins.
  7. Было бы неплохо, если бы он хорошо интегрировался с Subversion, Git, SmartBear Collaborator и Cruise Control — вы можете настроить большинство систем VCS так, чтобы он запускался как хук перед фиксацией и отказывался от фиксации, если код стал хуже, чем раньше.
Мне кажется, что это мертвый продукт, обновляется ли он до новых стандартов (я не смог найти ссылку)?
Отдел продаж отреагировал на мою просьбу о пробной копии.
@DavidThornley Приятно слышать.
Разве это не инструмент статического анализа? И, похоже, довольно плохого качества. Они не предоставляют никаких реалистичных примеров и не поддерживают должным образом С++ 11 (и, следовательно, несовместимы с последними версиями VS).

Вы пробовали CppDepend ? довольно крутой инструмент статического анализа, легко написать свои собственные правила кодирования с помощью CQLinq .