Вышел релиз IWYU (или include-what-you-use), программы позволяющей находить избыточные и предлагать недостающие #include в вашем коде на C/C++.
«Включать то, что используешь» означает следующее: для каждого символа (типа, переменной, функции или макроса), используемого в foo.cc, либо foo.cc, либо foo.h должны подключать .h-файл, экспортирующий объявление этого символа. Инструмент include-what-you-use — это программа для анализа #include исходных файлов с целью поиска нарушений этого подхода и выдачи рекомендаций для исправления. Программа использует библиотеки Clang и обычно релиз означает совместимость с новой версией Clang.
Основная цель include-what-you-use — удаление лишних #include. Для этого необходимо выяснить, какие #include не нужны в данном файле (как для .cc, так и для .h), и по возможности заменить #include на предварительное объявление.
Основные изменения
- Совместимость с Clang 17.
- Улучшен анализ псевдонимов типов (typedef и using).
- Улучшен анализ псевдонимов пространств имен (namespace xyz = foobar).
- Улучшена поддержка развернутых предварительных деклараций (typedef struct Foo Bar;).
- Улучшить обработку «автокаста» и возвращаемых типов функций, особенно при работе со сложными шаблонными типами.
- Добавлена новая прагма IWYU: always_keep, позволяющая пометить заголовок, что он всегда должен сохраняться, где бы он ни был включен.
- Автоматическое использование сопоставлений для builtins libc++, если libc++ является активной стандартной библиотекой.
- Улучшение сопоставлений для заголовков libc++ и posix.
>>> Подробности