我经常发现文件的标题部分一直变得越来越大但它永远不会变小.在源文件的整个生命周期中,类可能已经移动并被重构,很可能有很多#includes
不需要在那里再存在.将它们留在那里只会延长编译时间并增加不必要的编译依赖性.试图弄清楚哪些仍然需要可能是相当繁琐的.
是否有某种工具可以检测多余的#include指令并建议哪些可以安全删除?
lint可能这样做吗?
如何在C或C++项目中维护#include语句?似乎几乎不可避免的是,最终文件中的include语句集合不足(但由于项目的当前状态而恰好起作用)或包含不再需要的东西.
您是否创建了任何工具来发现或纠正问题?有什么建议?
我一直在考虑编写一些单独编译每个非头文件的东西,每次都删除一个#include语句.继续这样做,直到达到最小的包含集.
为了验证头文件是否包含他们需要的所有内容,我将创建一个源文件,它所做的只是包含头文件并尝试编译它.如果编译失败,那么头文件本身缺少一个include.
在我创作之前,我想我应该问一下.这似乎是一个普遍的问题.