Vyšiel release IWYU (alebo include-what-you-use), programy, ktorá umožňuje nájsť nadbytočné a navrhnúť chýbajúce #include vo vašom kóde na C/C++.
„Zahŕňať to, čo používaš“ znamená nasledovné: pre každý symbol (typ, premennú, funkciu alebo makro), ktorý je použitý v foo.cc, buď foo.cc, alebo foo.h musia pripojiť .h súbor, ktorý exportuje deklaráciu tohto symbolu. Nástroj include-what-you-use je program na analýzu #include zdrojových súborov s cieľom nájsť porušenia tohto prístupu a poskytnúť odporúčania na opravu. Program používa knižnice Clang a zvyčajne release znamená kompatibilitu s novou verziou Clang.
Hlavným cieľom include-what-you-use je odstránenie zbytočných #include. Na to je potrebné zistiť, ktoré #include nie sú potrebné v danom súbore (ako pre .cc, tak pre .h), a pokiaľ je to možné, nahradiť #include predbežnou deklaráciou.
Hlavné zmeny
- Kompatibilita s Clang 17.
- Zlepšená analýza aliasov typov (typedef a using).
- Zlepšená analýza aliasov priestorov názvov (namespace xyz = foobar).
- Zlepšená podpora rozšírených predbežných deklarácií (typedef struct Foo Bar;).
- Zlepšiť spracovanie „autocastu“ a návratových typov funkcií, najmä pri práci so zložitými šablónovými typmi.
- Pridaná nová pragma IWYU: always_keep, umožňujúca označiť hlavičku, že by mala byť vždy zachovaná, kdekoľvek je zahrnutá.
- Automatické používanie porovnaní pre builtins libc++, ak je libc++ aktívna štandardná knižnica.
- Zlepšenie porovnaní pre hlavičky libc++ a posix.
Zdroj: linux.org.ru
