13

一些 boost 库仅是标头,有些则不是,以及出于各种原因等。

是否有特定的原因/设计决定为什么Boost.ProgramOptions不是仅标题?

我想知道,因为它在其文档中声称是一个“小型”库,我没有看到任何与系统相关的原因(如线程或 asio)。

4

2 回答 2

4

Program Options 声称很小,但事实证明它是我们正在构建的第二大库,仅次于 Regex。(它比 boost Filesystem 和 Thread 库更大。)我相信你应该很高兴他们正在为它构建一个库,而不是用大量包含的头文件阻塞你的项目。可能作者刚开始的时候觉得会小,在继续成长和增加功能的时候忘记改评论了。

于 2017-11-30T03:12:18.220 回答
0

由于违反单一定义规则,并非所有 C++ 代码都可以只写在头文件中。

例如,static类成员的存储保留需要恰好在一个翻译单元中(尽管未来的 C++ 标准可能会避免这一点)。

最初的意图是让Boost只成为头球,但他们不得不迅速放弃这种愿望。

于 2017-03-15T13:51:13.347 回答