Я использую clang-tidy для заголовочного файла header.h. Однако, как и некоторые предупреждения, выводятся системные заголовки:
.../include/c++/8/bits/std_abs.h:46:8: error: expected identifier or '(' [clang-diagnostic-error]
extern "C++"
../include/c++/8/cctype:62:1: error: unknown type name 'namespace' [clang-diagnostic-error]
namespace std
../include/c++/8/cctype:62:14: error: expected ';' after top level declarator [clang-diagnostic-error]
namespace std
..
etc
Проблема: я не хочу видеть предупреждения ни для чего, кроме сканируемого исходного файла, ни для исходного файла, ни для файла заголовка.
Я пробовал применить исправление здесь (Как правильно использовать фильтр заголовков для clang-tidy в Cmake?) с использованием --header-filter
, но это не сработало. Я добавил путь к файлу заголовка, который сканировал в регулярном выражении, но все еще видел предупреждения системного заголовка.
clang-diagnostic-error
не может быть отфильтрован самимclang
, поскольку он исходит из бэкэнда clang. - person R2RT   schedule 27.04.2021clang-tidy
работает с AST, который не может быть сгенерирован из недопустимого кода. Таким образом, фильтрация такой ошибки только скрывает проблему включения файла, подверженного ошибкам. Кажется, вы включаете файл заголовка MSVC в режиме совместимости без mscv. Попробуйте решения от clang- developers.42468.n3.nabble.com/ - person R2RT   schedule 27.04.2021