Die Veröffentlichung von IWYU (oder include-what-you-use), einem Programm, das überflüssige und fehlende #include in Ihrem C/C++-Code findet, ist erfolgt.
"Was Sie verwenden, sollten Sie einbinden" bedeutet Folgendes: Für jedes Symbol (Typ, Variable, Funktion oder Makro), das in foo.cc verwendet wird, muss entweder foo.cc oder foo.h die .h-Datei einbinden, die die Deklaration dieses Symbols exportiert. Das Include-What-You-Use-Tool ist ein Programm zur Analyse der #include-Anweisungen in Quell-Dateien, um Verstöße gegen diesen Ansatz zu finden und Empfehlungen zur Behebung auszugeben. Das Programm nutzt die Clang-Bibliotheken und eine Veröffentlichung bedeutet normalerweise Kompatibilität mit einer neuen Version von Clang.
Das Hauptziel von include-what-you-use ist die Entfernung überflüssiger #include-Anweisungen. Dazu muss festgestellt werden, welche #include in dieser Datei (sowohl für .cc als auch für .h) nicht benötigt werden, und wo möglich #include durch Vorwärtsdeklarationen ersetzt werden.
Wesentliche Änderungen
- Kompatibilität mit Clang 17.
- Verbesserte Analyse von Typ-Aliasen (typedef und using).
- Verbesserte Analyse von Namensraum-Aliasen (namespace xyz = foobar).
- Erweiterte Unterstützung für ausgeweitete Vorwärtsdeklarationen (typedef struct Foo Bar;).
- Verbesserte Verarbeitung von "Autocasts" und Rückgabewerten von Funktionen, insbesondere bei der Arbeit mit komplexen Vorlagentypen.
- Eine neue IWYU-Direktive wurde hinzugefügt: always_keep, die es ermöglicht, einen Header zu kennzeichnen, dass er immer beibehalten werden sollte, egal wo er eingebunden wird.
- Automatische Verwendung von Zuordnungen für libc++-Builtins, wenn libc++ die aktive Standardbibliothek ist.
- Verbesserte Zuordnungen für libc++-Headers und posix.
Quelle: linux.org.ru
