Вийшов реліз 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.
Джерело: linux.org.ru
