标题中的每个定义都包含保护和只有一个编译单元

时间:2015-01-12 07:59:16

标签: c++ c

我知道开发C或C ++应用程序的常用方法是将每个模块作为单独的编译单元,将定义放在其中,以及声明的标头。有了良好的链接时间优化支持,这样的策略似乎没有问题,但根据我的经验,LTO目前可能使用gcc或g ++并不是那么好。

所以我的想法是(当然不是我自己的想法,我知道一些项目已经共享相同的想法),在标题中定义所有内容,同时使裸函数全部静态,使用包含警卫,并在最后阶段,只有一个编译单元,以便预处理后的编译器实际处理整个大的源文件。我将不得不避免循环引用来实现这一点,但我从未发现必要的循环引用;总有一些方法可以使它们分层。

因此,鉴于我的项目不是太大,以至于增加的编译时间是可以忍受的,我的想法是否可用'?我可能会遗漏哪些其他问题?顺便提一下,我的项目对性能非常敏感;另外一秒保存是非常重要的。我问的是这个问题,因为我知道我的方法并不常见,而且我无法通过Google搜索找到足够的资源,信息或人们的意见。任何帮助表示赞赏。

0 个答案:

没有答案