gpt4 book ai didi

c++ - 为什么 Boost 和其他库(如 Folly)的某些部分在 detail 子文件夹中?

转载 作者:行者123 更新时间:2023-11-30 03:42:30 27 4
gpt4 key购买 nike

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

Facebook 用 Folly 做到了这一点 https://github.com/facebook/folly/tree/master/folly/detail , Boost 也是这样做的。

最佳答案

detail 命名空间中的内容通常支持模板代码(因此不能放在单独的翻译单元中)但不被视为public 界面。

所以对象和函数被放在那里是为了“不碍事”,并明确表示它们没有记录在案。

它们是库使用者不应该关心的代码部分,因为它们可能会在库的新版本中发生变化。

关于c++ - 为什么 Boost 和其他库(如 Folly)的某些部分在 detail 子文件夹中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36773211/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com