Includeファイルの依存の解決
世の中には便利な物がありますね。
https://code.google.com/p/include-what-you-use/
http://llvm.org/devmtg/2010-11/Silverstein-IncludeWhatYouUse.pdf
「Include-What-You-Use」と言う名前のツールで、ファイルが依存しているSymbolが本当に宣言全体を必要としているかを判定。もしそうで無いなら、前方宣言にしといてincludeはずせんじゃね?と言う事を自動でやってもらう。
ツールはClangのASTをベースとしている様なので、ツールをビルドするにはClangが必要。