Применение пользовательских правил в коде (C/C++)
G ++ проверяет предопределенный набор правил и ограничений, которые, если они не встречаются в коде, выдают сообщения об ошибках или предупреждения. Возможно ли использовать какой-либо инструмент для создания синтаксического анализатора для пользовательского набора правил, таких как "глобальные переменные должны быть явно инициализированы" (я знаю, что глобальные переменные инициализируются неявно), или были вызваны функции с именем init (я знаю о конструкторах, но не хочу их использовать). Любые указатели на что-то быстрое и простое были бы полезны.
2 ответа
Coverity позволяет вам писать собственные правила, как это. Это довольно дорого, так что, вероятно, это не хобби, которое нужно было бы создать именно для этого. Это хороший инструмент для производственного кода и расширяемый.
CLANG - это статический анализатор кода, используемый для гарантии того, что вы написали то, что имели в виду, даже если то, что вы написали, все равно скомпилируется. Он выполняет только анализ кода.
В противном случае используйте assert() или исключения для вышеупомянутых правил во время выполнения.