为什么BOOST.PROGROGROGOTIONS不仅仅是标头
Why is Boost.ProgramOptions not header-only?
有些提升库仅是标题,有些不是,出于各种原因等。
是否有特定的原因/设计决定,为什么Boost.ProgramOptions
不仅限标题?
我想知道,因为它声称是文档中的"小"库,我看不到任何与系统有关的原因(例如线程或ASIO)。
程序选项声称很小,但事实证明这是我们构建的第二大图书馆,仅次于Regex。(它比Boost文件系统和线程库还大。)我相信您应该很高兴他们为它构建了一个库,而不是用大量包含的标头扼杀您的项目。也许作者认为当他开始时它会很小,并且在继续增长并添加功能时忘了更改评论。
并非所有的C 代码都可以仅在标题中写入标题。
例如,类的static
成员的存储保留需要完全在一个翻译单元中(尽管未来的C 标准可能会避免)。
最初的意图是仅仅是要成为标题,但他们必须迅速放弃这种愿望。
相关文章:
- 为什么这个案例陈述需要一个"if else"而不仅仅是一个"if"?
- std::find,返回所有找到的值的替代方法,而不仅仅是存在重复的向量的第一个值
- 为什么C++总是显示十六进制内存地址,而不仅仅是整数?
- 为什么我们要做"INT_MAX/10"而不仅仅是INT_MAX?
- 为什么 std::vector 需要 is_trivial 才能按位移动,而不仅仅是is_trivially_copya
- 为什么在这个C++问题中使用const_iterator而不仅仅是迭代器?
- C++,从文件读取到结构,然后读取到向量(结构被推入向量太多次,而不仅仅是一次)
- 如果要求比较器是严格的总排序,而不仅仅是严格的弱排序,C++标准算法会更快吗?
- 为什么我们必须在 C++ 中释放数组数组,而不仅仅是整个"matrix"
- 十进制文字不仅仅是LONG_LONG_MAX
- 为什么非放置"新建"和"删除"内置于语言中,而不仅仅是常规函数?
- 使用 fstream 在空格分隔文件中查看下一项(不仅仅是一个字符)的方法
- 这是循环击中两个输出,而不仅仅是我期望的输出
- 在C++中,是否有任何理由生成并立即加入线程,而不仅仅是直接调用函数?
- 如何正确抛出一个需要的不仅仅是构造函数的异常
- 为什么 cppreference 将type_traits xxx_v快捷方式定义为内联 constexpr,而不仅仅是
- C++Qt创建者,我可以评论每一行,而不仅仅是评论选择
- 为什么BOOST.PROGROGROGOTIONS不仅仅是标头
- 使用FP:快速导致错误的VC 结果(不仅仅是不准确)结果 - 这是编译器错误
- 提升系统 1.69.0 不仅仅是标题