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