多年来,我一直以标准方式编写C++,头文件.hpp中的类声明和源.cpp文件中的函数定义.最近我搬到了一家新公司,其中代码(看似受boost编码样式影响)完全用.hpp文件编码,带有一个简短的.cpp文件,包含头文件并创建对象/程序二进制文件.
它让我思考 - 在头文件中编写代码的优点/缺点是什么,而不是为每个对象编写.hpp&.cpp文件?这假设我们的项目不会创建随后链接到程序二进制文件的公共库,而是每个程序二进制文件都是根据头文件(和一个源.cpp文件)的总和构建的.这是C++的新趋势吗?
例如,模板对象只需要是标题,但是将非模板类放入头文件然后只需在二进制文件中包含这些常用项目类似乎是个好主意.假设您从头开始创建新的代码库,这意味着更少的链接,这可能意味着更少的链接错误和可能更快的构建.预编译的头文件设备是否也意味着使用头文件可以加快构建时间?或者构建时间更长,因为我们现在需要在创建二进制文件时编译所有代码而不是链接常见的共享库对象?
另请注意,我们不是在这里编写API(在这种情况下,像pimpl习惯用法通过隐藏实现会给我们更多的灵活性),我们正在编写程序以在客户站点上运行.
提前致谢,