为什么 Boost 和其他库的某些部分(如 Folly)在详细信息子文件夹中

Why are some parts of Boost and other libraries (like Folly) in the detail subfolder?

本文关键字:Folly 详细信息 文件夹 其他 Boost 些部 为什么      更新时间:2023-10-16

实现的各个部分分离到单独的.h/.cpp文件中的原因是什么?我知道更改标头会强制重新编译,但是将实现移动到单独的.cpp有什么好处?

Facebook通过Folly https://github.com/facebook/folly/tree/master/folly/detail 做到这一点,Boost也这样做。

detail命名空间中的内容通常支持模板代码(因此不能放在单独的翻译单元中),但不被视为公共接口的一部分。

因此,对象和函数被放在那里是为了"不碍事",并明确表示它们是未记录的。

它们是库使用者不应关注的代码部分,因为它们可能会在新版本的库中更改。