Издаден е релиз 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;).
- Подобренo е обработването на „автокаст“ и върнати типове от функции, особено при работа със сложни шаблонни типове.
- Добавена е нова pragma IWYU: always_keep, позволяваща да се маркира заглавието, че то трябва винаги да се запазва, независимо къде е включено.
- Автоматично използване на съвпадения за builtins libc++, ако libc++ е активната стандартна библиотека.
- Подобрение на съвпаденията за заглавията libc++ и posix.
Източник: linux.org.ru
