我正在开发一个使用STL的大型项目,并对您组织STL的首选方式提出疑问#includes.
foo.cpp和bar.cpp要求std::string,然后既会#include <string>.第一种方法的优点是.cpp文件是一个独立的单元,可以在不同的项目中使用,而不必担心你错过了#include.第二种方法的优点是你可以使用你的编译器预编译头支持加上你可以#includes在STL 中pragmas包含禁用一些警告(例如,一些Boost头在第4级编译时会引起警告).
您更喜欢使用哪种?
Pie*_*ter 16
我只包含每个源中真正需要的头文件,而不是'catch all'头文件,以保持依赖性(以及编译时间)尽可能低.
预编译的头文件无论如何都可以工作(即我依赖预编译的头文件来加速编译过程,而不是获取声明).因此,即使通过包含的预编译头部声明了某些内容,我仍然会包含"常规"标头,它将被包含保护机制跳过,并且不会在编译时添加任何重要内容.
由于预编译头是编译器特定的东西.在我看来,优化/更改预编译头文件对代码的正确运行没有任何影响.
使依赖关系尽可能低的主要优点是重构变得更容易(或者更确切地说:可行)
关于这一切的好书是来自Lakos的大规模C++设计
| 归档时间: |
|
| 查看次数: |
1890 次 |
| 最近记录: |