May 26, 2018

Tool for use with clang to analyze #includes in C and C++ source files

“Include what you use” means this for every symbol type, function, variable, or macro that you use in or foo.cpp, either or foo.h should include a .h file that exports the declaration of that symbol. Similarly, for, either or foo.h should do the including. Obviously symbols defined in itself are excluded from this requirement.

This puts us in a state where every file includes the headers it needs to declare the symbols that it uses. When every file includes what it uses, then it is possible to edit any file and remove unused headers, without fear of accidentally breaking the upwards dependencies of that file. It also becomes easy to automatically track and update dependencies in the source code.

WWW http//