К превосходному списку Joseph Holsten я добавляю xpath сценарий командной строки, который идет с библиотекой Perl XML:: XPath. Отличный способ извлечь информацию из XML-файлов:
xpath -q -e '/entry[@xml:lang="fr"]' *xml
Для внешних библиотек вы можете попробовать указать их путь включения с помощью -isystem
вместо -I
, это приведет к тому, что gcc перестанет выводить предупреждения в их большую часть времени.
Когда предупреждение появляется только в нескольких ограниченных случаях, вы можете обойти его с помощью:
#pragma GCC диагностика игнорируется "-Wshadow"
Для остальных случаев рефакторинг код или выполнение трюка grep
, упомянутого Питером, кажутся единственными вариантами.
К сожалению, в gcc нет способа отключить предупреждения для определенных строк. В любом случае, если вы это делаете, вам следует просто переименовать параметр info вашего конструктора в my_info, и тень исчезнет.
Лучший совет, который я могу вам дать, - поработать над удалением всех этих предупреждений, даже если вы этого не сделаете. не заботятся о них. В общем, лучше не использовать имена параметров, скрывающие функции-члены.
Это подход, который мы приняли при включении новых предупреждений и введении других статических проверок. На мой взгляд, боль в целом стоит того.
В некоторых случаях нам удавалось запускать сценарий поверх кода, чтобы внести изменения за нас. Я не уверен, насколько легко это будет. В качестве альтернативы хороший редактор (например, emacs или VIM) должен помочь вам сделать этот тип "механического" изменить полуавтоматически и довольно быстро, если вы умеете хорошо управлять редактором!
Еще один действительно хакерский вариант - создать список известных "нормальных" исключений и извлечь их из вывода компилятора. . Вы можете создать оболочку для gcc, которая будет просто извлекать предупреждения, которые вы не хотите видеть. Я не рекомендую это делать, возможно, будет проще исправить кодовую базу!