从boost标头中删除特定于编译器的代码

ltj*_*jax 0 c++ boost header-files visual-studio c-preprocessor

似乎boost中的很多代码都是特定于编译器的解决方法或不同编译器的不同路径(特别是在像mpl这样的组件中).当我使用boost时,我的构建时间增加很多,即使我试图隐藏编译器防火墙(PIMPL)背后的大部件或使用预编译头.

有没有办法预处理我实际使用的一个编译器的boost头?我怀疑任何使标题(显着?)变小的东西都会产生一些影响.有没有人测试过这是否会提高速度?

不知道这对于实际答案是否重要,但我主要使用的是Visual Studio 2010.

Pup*_*ppy 5

如果您使用预编译的头文件,那么就是在类固醇上预处理头文件.如果PCH不会有所作为,那么你无能为力.

编译时间可能来自过度包含或复杂的模板实例化,而不是来自预处理器的大小或复杂性.