Boost C++ 库

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

2007 年 11 月审核向导状态报告

新闻

2007 年 11 月 7 日 - 异常库已接受
公告: https://lists.boost.org/boost-users/2007/11/31912.php

我们需要有经验的审核经理。请查看需要经理的库列表并查看其描述。一般来说,审核经理是活跃的 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 发送您的库的简短描述,我们将将其添加到下面的“正在构建的库”中。我们知道有很多库即将完成,但我们很难跟踪所有这些库。请随时告知我们您的进度。

审核队列

  • 有限状态机
  • 浮点实用程序
  • Switch
  • 属性映射(快速通道)
  • 图(快速通道)
  • Forward(快速通道)
  • Singleton(快速通道)
  • Factory(快速通道)
  • Lexer
  • 线程安全信号
  • 日志记录
  • Flyweight
  • 无序容器

有限状态机

作者 Andrey Semashev
审核经理 Martin Vuille
下载 Boost 沙箱库
描述

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

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

浮点实用程序

作者 Johan Råde
审核经理 需要志愿者
下载 Boost 沙箱库
描述

浮点实用程序库包含以下内容

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

Switch

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

属性映射(快速通道)

作者 Andrew Sutton
审核经理 Jeremy Siek
下载 http://svn.boost.org/svn/boost/sandbox/graph-v2
描述

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

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

图(快速通道)

作者 Andrew Sutton
审核经理 Jeremy Siek
下载 http://svn.boost.org/svn/boost/sandbox/graph-v2
描述

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

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

Forward(快速通道)

作者 Tobias Schwinger
审核经理 John Torjo
下载 http://boost-consulting.com/vault/index.php?&direction=0&order=&directory=X-Files
描述 转发问题的蛮力解决方案。

Singleton(快速通道)

作者 Tobias Schwinger
审核经理 John Torjo
下载 http://boost-consulting.com/vault/index.php?&direction=0&order=&directory=X-Files
描述 三个线程安全的 Singleton 模板,具有易于使用的接口。

Factory(快速通道)

作者 Tobias Schwinger
审核经理 John Torjo
下载 http://boost-consulting.com/vault/index.php?&direction=0&order=&directory=X-Files
描述 通用工厂。

Lexer

作者 Ben Hanson
审核经理 需要志愿者
下载 http://boost-consulting.com/vault/index.php?action=downloadfile&filename=boost.lexer.zip&directory=Strings%20-%20文本处理&
描述 一个可编程的词法分析器生成器,灵感来自“flex”。与 flex 一样,它通过使用正则表达式进行编程,并输出状态机作为许多 DFA,利用等价类进行压缩。

线程安全信号

作者 Frank Hess
审核经理 需要志愿者
下载 http://www.boost-consulting.com/vault/index.php?&direction=0&order=&directory=thread_safe_signals
描述 Boost.signals 的线程安全实现,它具有一些接口更改以适应线程安全性,主要是在自动连接管理方面。

日志记录

作者 John Torjo
审核经理 需要志愿者
下载 http://torjo.com/log2/
描述 如果使用得当,日志记录是非常强大的工具。除了辅助调试/测试外,它还可以向您展示您的应用程序是如何被使用的。Boost Logging Library 允许这样做,支持多种场景,从非常简单(全部转储到一个目的地)到非常复杂(多个日志,一些启用/一些未启用,级别等)。它具有非常简单和灵活的界面、高效的消息过滤、线程安全性、格式化程序和目标、日志的轻松操作、根据应用程序的需求查找最佳的记录器/过滤器类,您可以定义自己的宏等等!

Flyweight

作者 Joaquín M López Muñoz
审核经理 需要志愿者
下载 http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=flyweight.zip&directory=Patterns
描述 Flyweight 是小尺寸的句柄类,可授予对共享公共数据的常量访问权限,从而允许在合理的内存限制内管理大量实体。Boost.Flyweight 通过提供类模板 flyweight<T>,使其易于使用这种常见的编程习惯用法,该模板充当 const T 的直接替代品。

无序容器

作者 Daniel James
审核经理 需要志愿者
下载 http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=unordered.zip&directory=Containers
描述 TR1 中指定的无序容器的实现,以及最近的草案标准中的大多数更改。

正在开发的库

Dataflow

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

约束值

作者 Robert Kawulak
下载

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

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

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

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