Boost C++ 库

...世界上最受推崇和设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu,《C++ 编码标准

2007 年 9 月 Review Wizard 状态报告

新闻

2007 年 8 月 17 日 -- 时间序列库已被接受。
公告:https://lists.boost.org/boost-announce/2007/08/0142.php
2007 年 7 月 24 日 -- Boost 版本 1.34.1 发布。
这是一个错误修复版本,解决了 1.34.0 版本的许多问题。公告: http://svn.boost.org/trac/boost/query?status=closed&milestone=Boost+1.34.1

我们需要有经验的评审经理。请查看需要经理的库列表,并查看它们的描述。一般来说,评审经理是活跃的 Boost 参与者或库贡献者。如果您可以担任其中任何一个库的评审经理,请发送电子邮件给 Ron Garcia 或 John Phillips,电子邮件地址分别为 "garcia at cs dot indiana dot edu" 和 "jphillip at capital dot edu"。

此报告的链接将发布到 www.boost.org。如果您希望我们在发布之前对此报告进行任何修改或添加,请发送电子邮件给 Ron 或 John。

如果您是库作者,并计划在未来 3-6 个月内提交库进行评审,请向 Ron 或 John 发送您的库的简短描述,我们会将其添加到下面的“正在开发中的库”列表中。我们知道有很多库即将完成,但我们很难跟踪所有这些库。请随时告知我们您的进展。

评审队列

  • 异常处理 (Exception)
  • 有限状态机 (Finite State Machines)
  • 浮点工具 (Floating Point Utilities)
  • Switch
  • 属性映射 (快速通道) (Property Map (fast-track))
  • 图 (快速通道) (Graph (fast-track))

异常处理 (Exception)

作者

Emil Dotchevski

评审经理

需要志愿者

下载

http://www.revergestudios.com/boost-exception/boost-exception.zip

描述

此库的目的是将异常类的设计者从必须考虑需要在异常对象中存储哪些数据中解放出来,以便捕获点能够理解出了什么问题。

当使用异常类时,可以在任何异常中存储任意值。这可以直接在 throw 表达式中完成,或者在稍后的时间,当异常对象沿调用堆栈向上传播时完成。在抛出异常对象后向其添加数据的能力非常重要,因为通常处理异常所需的一些信息在抛出时是不可用的。

有限状态机 (Finite State Machines)

作者

Andrey Semashev

评审经理

Martin Vuille

下载

Boost Sandbox Vault

描述

Boost.FSM 库是 FSM(有限状态机)编程概念的实现。该库的主要目标是

  • 简洁性。使用此库创建状态机应该非常简单。
  • 性能。状态机基础设施不应非常耗时和耗内存,以便适用于更多用例。
  • 可扩展性。开发人员可能希望向现有状态机添加更多状态。开发人员还应该能够为机器指定额外的转换和事件,并且只需对现有代码进行最少的修改。

浮点工具 (Floating Point Utilities)

作者 Johan Råde
评审经理

需要志愿者

下载

Boost Sandbox Vault

描述

浮点工具库包含以下内容

  • 浮点数分类函数:fpclassify、isfinite、isinf、isnan、isnormal(遵循 TR1)
  • 符号位函数:signbit、copysign、changesign(遵循 TR1)
  • 根据 C99 标准格式化和解析无穷大和 NaN 的 Facet。(这些可用于文本流中无穷大和 NaN 的可移植处理。)

Switch

作者 Steven Watanabe
评审经理 需要志愿者
下载 Boost Sandbox Vault
描述 内置的 C/C++ switch 语句非常高效。不幸的是,与链式 if/else 结构不同,当 case 的数量取决于模板参数时,没有简单的方法可以使用它。Switch 库解决了这个问题。

属性映射 (快速通道) (Property Map (fast-track))

作者

Andrew Sutton

评审经理

Jeremy Siek

下载

http://svn.boost.org/svn/boost/sandbox/graph-v2

描述

属性映射库的一些添加和修改,包括

  • 一个常量值属性映射,对于自然无权图很有用。
  • 一个 noop-writing 属性映射,当您必须提供参数,但只是不关心输出时很有用。
  • 有关详细信息,请参阅 ChangeLog

图 (快速通道) (Graph (fast-track))

作者

Andrew Sutton

评审经理

Jeremy Siek

下载

http://svn.boost.org/svn/boost/sandbox/graph-v2

描述

图库的一些添加和修改,包括

  • 两个新的图类(无向图和有向图),旨在使该库对新的开发人员更易于上手
  • 一套图度量,包括度中心性、接近中心性、平均测地距离、离心率和聚类系数。
  • 一种访问有向图中所有环的算法(Tiernan 在 1970 年左右提出的)。它也适用于无向图,但会报告两次环(每个方向一次)。
  • 一种访问图中所有团的算法 (Bron&Kerbosch)。适用于有向图和无向图。
  • 派生的图度量半径和直径(来自离心率)以及周长和周长(来自 Tiernan)和团数(来自 Bron&Kerbosch)。
  • 一个 exterior_property 类,有助于隐藏一些外部属性的怪异之处。
  • 新算法的运行时和编译时测试。
  • 大量的文档
  • 图核,由 David Gleich (@斯坦福大学) 实现
  • 确定性图生成器 - 能够在一个顶点集上创建或诱导特定类型的图(例如,星形图、轮图、棱柱图等)。还有其他几种特定类型可以添加到此,但我还没有时间。

正在开发中的库

数据流 (Dataflow)

作者 Stjepan Rajko
描述 Dataflow 库为数据生产者、消费者以及两者之间的连接提供通用支持。它还为几种特定的数据流机制提供层,即 Boost.Signals、VTK 数据/显示管道和普通指针。Dataflow 库来自 Signal Network GSoC 项目,由 Doug Gregor 指导。
状态 我正在润色 Dataflow 库以进行提交,并期望在未来几个月内将其添加到评审队列中。我目前正在解决库设计中的一些缺陷,填补缺失的功能,并在不同的数据流机制(目前是 VTK,很快是 Boost.Iostreams)上测试/调整它。一旦我非常确定事情进展顺利,我就会在进行最后润色的同时将其提交到评审队列。

约束值 (Constrained Value)

作者

Robert Kawulak

下载

http://rk.go.pl/f/constrained_value.zip

http://rk.go.pl/r/constrained_value (文档)

描述

Constrained Value 库包含用于创建约束对象的类模板。约束对象最简单的例子是 hour。一天中 hour 的唯一有效值是范围 [0, 23] 中的整数。使用此库,您可以创建一个行为与 int 完全相同的变量,但不允许赋值不属于允许范围的值。该库不仅关注于保存属于指定范围的值的约束对象(即,有界对象)。实际上,可以使用适当的谓词来施加任何约束。您可以指定在赋值无效值时会发生什么,例如,可能会抛出异常,或者可能会调整该值以满足约束条件。

状态

我计划在 1-2 个月内完成它。

请告知我们您目前正在开发的任何计划提交评审的库。