我应该何时在现代C ++中使用(非标题)源文件?

时间:2017-05-12 17:09:47

标签: c++ templates boost c++17 header-only

编写C ++代码的典型方法是将其分隔在头文件和(非标头)源文件中。

我看到很多现代C ++库只是标题库(例如一些Boost库)。通常,这些库会大量使用模板。

不是将文件分成头文件和源文件,而是将文件分隔为头部声明和头部实现。

所以我的问题是:

  • 这只是使用源文件的旧方式吗?

  • 什么时候使用源文件才有意义?

  • 创建仅限标题库的优缺点是什么?

1 个答案:

答案 0 :(得分:3)

他们这样做是因为templates cannot be defined in a source file without making life difficult。这也意味着您不必担心链接任何事情(因此,方便)。那就是它。

通常,我们使用标头/源模型来促进可重用性,部分重建和更好的代码组织。