Boost C++ 库

...世界上最受尊敬和设计最精良的 C++ 库项目之一。 赫布·苏特安德烈·亚历山德雷斯库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,我们将会将其添加到下面的在建库中。我们知道许多库即将完成,但是我们很难跟踪所有库。请让我们了解您的进度。

审阅队列

  • 有限状态机
  • 浮点实用程序
  • 转换
  • 属性映射(快轨)
  • 图形(快轨)
  • 前向(快轨)
  • 单例(快轨)
  • 工厂(快轨)
  • 词法分析器
  • 线程安全的信号
  • 日志记录
  • 享元模式
  • 无序容器

有限状态机

作者 Andrey Semashev
审查管理器 Martin Vuille
下载 Boost Sandbox Vault
说明

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

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

浮点实用程序

作者 Johan Råde
审查管理器 需要志愿者
下载 Boost Sandbox Vault
说明

浮点实用程序库包含以下各项:

  • 浮点数分类函数:fpclassify、isfinite、isinf、isnan、isnormal(遵循 TR1)
  • 符号位函数:signbit、copysign、changesign(遵循 TR1)
  • 按照 C99 标准格式化和解析无穷大和 NaN 的实体(这些实体用于便携式地处理文本流中的无穷大和 NaN)。

Switch

作者 Steven Watanabe
审查管理器 需要志愿者
下载 Boost Sandbox Vault
说明 C/C++ 内置的 switch 语句非常高效。不幸的是,不像链式 if/else 结构,当所含情况数取决于模板参数时,无法轻松使用它。Switch 库解决了此问题。

属性映射(快速通道)

作者 Andrew Sutton
审查管理器 Jeremy Siek
下载 http://svn.boost.org/svn/boost/sandbox/graph-v2
说明

对属性映射库的多项添加和修改,包括:

  • 一个常值属性映射,适用于天然未加权图。
  • 一个 noop 写入属性映射,当您需要提供一个参数但并不关心输出时,非常有用。
  • 有关详情,请参见 变更日志

图形(快速通道)

作者 Andrew Sutton
审查管理器 Jeremy Siek
下载 http://svn.boost.org/svn/boost/sandbox/graph-v2
说明

对图形库的多项添加和修改,包括:

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

转发(快速通道)

作者 Tobias Schwinger
审查管理器 John Torjo
下载 http://boost-consulting.com/vault/index.php?&direction=0&order=&directory=X-Files
说明 转发表达问题的蛮力解决方案。

单例(快速通道)

作者 Tobias Schwinger
审查管理器 John Torjo
下载 http://boost-consulting.com/vault/index.php?&direction=0&order=&directory=X-Files
说明 三个带有易用界面的线程安全单例模板。

工厂(快速通道)

作者 Tobias Schwinger
审查管理器 John Torjo
下载 http://boost-consulting.com/vault/index.php?&direction=0&order=&directory=X-Files
说明 通用工厂。

词法分析器

作者 本·汉森
审查管理器 需要志愿者
下载 http://boost-consulting.com/vault/index.php?action=downloadfile&filename=boost.lexer.zip&directory=Strings%20-%20文本处理&
说明 一个受“flex”启发而设计的可编程词法分析器生成器。与 flex 一样,它使用正则表达式进行编程,并输出状态机作为利用等价类进行压缩的多个 DFA。

线程安全信号

作者 弗兰克·赫斯
审查管理器 需要志愿者
下载 http://www.boost-consulting.com/vault/index.php?&direction=0&order=&directory=thread_safe_signals
说明 针对 Boost.signals 的线程安全实现,它对界面进行了一些更改以适应线程安全,主要与自动连接管理有关。

日志记录

作者 John Torjo
审查管理器 需要志愿者
下载 http://torjo.com/log2/
说明 正确使用后,日志记录是一个非常强大的工具。除了辅助调试/测试外,它还可以显示应用程序的使用方式。Boost 日志记录库正是为此而设计,支持大量场景,从非常简单(将所有内容转储到一个目标)到非常复杂(多个日志,一些已启用/一些未启用,级别等)。它具有非常简单灵活的界面、高效的消息筛选、线程安全、格式化程序和目标、轻松操作日志、根据应用程序的需求查找最佳的日志记录程序/过滤器类、可以定义自己的宏等众多功能!

轻量级

作者 华金·M·洛佩兹·穆尼奥斯
审查管理器 需要志愿者
下载 http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=flyweight.zip&directory=Patterns
说明 轻量级是一种小型句柄类,用于授予对共享通用数据的持续访问,从而允许在合理的内存限制内管理大量实体。Boost.Flyweight 通过提供类模板 flyweight<T>(用作 const T 的直接替代)让这种常见的编程方式变得易于使用。

无序容器

作者 丹尼尔·詹姆斯
审查管理器 需要志愿者
下载 http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=unordered.zip&directory=Containers
说明 TR1 中指定且规范的大部分更改的无序容器实现。TR1 中指定且规范的大部分更改的无序容器实现。

正在开发的库

数据流

作者 斯特杰潘·拉伊科
说明 数据流库为数据生成者、消费者以及二者之间的连接提供通用支持。它还为几个特定数据流机制(即 Boost.Signals、VTK 数据/显示管道和普通指针)提供层。数据流库来自于 Douglas Gregor 指导的信号网络 GSoC 项目。
状态 我正在打磨 Dataflow 库以进行提交,预计在未来几个月内将其添加到审核队列中。我现在正在解决库设计中的某些缺陷,填补缺失的功能,并在不同的数据流机制(目前是 VTK,很快会变成 Boost.Iostreams)上对其进行测试/调整。只要我相当肯定事情进展顺利,我会在做收尾工作时将其提交到审核队列。

约束值

作者 Robert Kawulak
下载

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

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

说明 约束值库包含用于创建约束对象的有用的类模板。约束对象的最简单的示例是小时。一天中的小时的唯一有效值是 [0, 23] 范围内的整数。通过使用此库,您可以创建一个变量,其行为完全像 int,但不允许分配不属于允许范围的值。该库不仅关注保存属于指定范围的值的约束对象(即,有界对象)。实际上,可以使用合适的谓词施加任何约束。您可以指定在分配无效值时发生的情况,例如,可能会引发异常或调整值以满足约束标准。
状态 我计划在 1-2 个月内完成它。

请告诉我们您当前正在开发的任何准备提交审核的库。