Boost 常见问题解答
如何下载这些库? 请参阅 下载 页面。
Boost 版本号的含义是什么? 版本号格式为 x.y.z,其中 x 仅在发生重大更改时才会递增,例如许多库的重组;y 在添加新库时递增;z 在维护版本发布时递增。如果左侧的值发生更改,则 y 和 z 会重置为 0。
是否有任何保证这些库确实如声明的那样工作? 没有。审查流程希望能消除最严重的库缺陷,但精心构建的库中可能存在隐藏的缺陷,并可能通过审查。鼓励普通用户报告他们使用库的体验,旨在解决此类问题。请参阅 测试结果,以了解库在特定平台上的工作情况。
如何成功地将 Boost 库用于重要的项目? 许多 Boost 库都得到积极维护和改进,因此无法始终保证与先前版本的向后兼容性。您可以通过冻结项目使用的 Boost 库版本来解决此问题。仅在项目生命周期的特定点进行升级,此时一些更改不会导致问题。您始终可以从 Boost 代码库获取单独的错误修复。
如何为开发做出贡献? 要参与开发,您需要订阅 Boost 开发者邮件列表。完成此操作后,您可以通过以下途径做出贡献:
- 提交新功能或错误修复的补丁。从 GitHub 上的 我们的错误跟踪系统 中选择任何问题并开始操作。如果现有的库维护者还不了解您的工作,这是一种让您获得认可的好方法,让他们相信您可以完成高质量的工作。
- 加入特定库的社区,并通过参与设计讨论让库维护者了解您(一些库,例如 Spirit,有自己的 邮件列表,您可以在其中进行讨论)。
- 提出您自己的库想法,并开始 库提交流程。
如何将库接受到网站上发布? 请参阅 库提交流程。
如何提交正式审查意见? 发送电子邮件到 [email protected]。请参阅 正式审查 页面了解更多信息。
如何提交库? 请参阅 库指南。
是否接受需要付费的商业库? 不接受。但是,商业企业免费提供的库是可以接受的。如果库的描述对供应商进行了低调的宣传,只要该库提供了真正的价值,并且不是仅仅为了宣传而存在的特洛伊木马,那么是可以接受的。
是否接受共享软件库? 不接受。只接受免费库。
是否接受开源许可证库? 一些接受,许多不接受。开源许可证通常要求重新分发或提供源代码,在机器可执行文件分发中包含许可证文档,赋予初始开发者对被许可人修改的权利,或者需要律师来理解。Boost 旨在避免让用户遵守难以遵守的许可条款。请参阅 许可证要求。
这会根据特定重要的软件或行业的变化而进行审查。
是否必须提供完整的源代码? 是的,这些是源代码库。
文档方面呢? 一个非常简单的库可能只需一个注释良好的头文件即可被接受。对于更复杂的库,肯定需要某种形式的文档。HTML 是首选格式。
是否接受特定平台的库? 我们更偏好可移植库。只要作者为几个不同的主要操作系统提供实现,就会接受具有可移植接口但需要特定平台实现的库。
库必须执行有用的工作吗? 不必。作为教学示例或演示的库可能实际上不执行任何工作。
Boost 是否可以接受现有的库? 可以,但它必须“Boostified”以满足要求。Boost 图形和正则表达式库就是从其他地方开始的库的例子。
谁拥有这些库? 大多数作者可能会对他们的库进行版权保护。其他作者可能希望将他们的库置于公共领域。Boost.org 的政策是只接受具有明确版权声明并符合 许可证要求 的库。最终用户需要决定是否接受这些条款,并且不使用版权或许可证不可接受的库。
Boost.org 和 C++ 标准委员会之间是否存在正式关系? 没有,尽管存在很强的非正式关系,因为委员会的许多成员都参与了 Boost,并且 Boost 的发起者都是委员会成员。
Boost.org 库会成为下一个 C++ 标准的一部分吗? 有些可能会,但最终取决于标准委员会。参与 Boost 的委员会成员肯定会提议将至少一些 Boost 库纳入标准化。
那些“现有实践”中的库最有可能被 C++ 委员会接受,以便在将来进行标准化。将库纳入 Boost 是建立现有实践的一种方式。
“Boost”这个名字的由来是什么? 1998 年,在法国索菲亚安蒂波利斯举行的 C++ 委员会会议上,Robert Klarer 和我在晚餐时开始幻想一个新的库项目。Robert 提到了 Herb Sutter 正在为一种名为 Booze 的新语言编写一个恶搞提案,据说它比 Java 更好。不知何故,这引发了将“Boost”作为名称的想法。当时我们可能喝了几杯法国好酒。这只是一个工作名称,但没有人提出替换名称。(Beman Dawes)
该网站是一个商业企业吗? 不是。Boost 基金会作为一个非营利性公司注册成立,并正在申请 503(c)(3) 免税资格。
向 Boost.org 提交库或审查是否有任何费用? 没有。与标准委员会不同,您无需付费即可成为志愿者!
该网站是否会包含库以外的内容? 主要重点是库,但如果人们偶尔贡献文章或其他内容来使网站更有趣,那可能是一个不错的选择。
为什么没有为我喜欢的库单独设置 Boost 邮件列表? Boost 成功的原因之一是不同库项目之间思想的交叉传播,以及偶尔对其他线程的关注,这些关注来自原本不感兴趣的人。参与的人越多,他们就越不容易被“噪音”所困扰。
如何应对大量 Boost 邮件列表消息? 一种方法是使用“摘要”选项;这会将邮件风暴减少到每天几条(长)邮件,因此您可以快速浏览顶部的主题摘要并快速阅读您认为重要的内容。“不发邮件”选项会完全关闭列表邮件。
另一种方法是通过 NNTP 新闻组阅读器关注列表流量。请参阅 邮件列表 新闻组信息。
为什么 Boost 头文件使用 .hpp 后缀而不是 .h 或根本没有后缀? 文件扩展名向人和计算机程序传达文件的“类型”。'.h' 扩展名用于 C 头文件,因此传达了关于 C++ 头文件的错误信息。不使用扩展名则不传达任何信息,并强制检查文件内容以确定类型。使用 '.hpp' 明确地将其识别为 C++ 头文件,并且在实际应用中效果很好。(Rainer Deyke)
如果我在 Boost 代码或文档中发现错误,我该怎么办? 请参阅 错误页面 上的建议。
如何请求 Boost 库中的新功能? 请参阅 请求新功能 页面。
Boost 是谁的想法? 请参阅 最初的提案 (PDF)。