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
  • 属性映射(快速通道)
  • 图(快速通道)
  • 转发(快速通道)
  • 单例(快速通道)
  • 工厂(快速通道)
  • 词法分析器
  • 线程安全信号
  • 日志记录
  • 享元模式
  • 无序容器

有限状态机

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

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

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

浮点数实用程序

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

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

  • 浮点数分类函数:fpclassify、isfinite、isinf、isnan、isnormal(遵循TR1)
  • 符号位函数:signbit、copysign、changesign(遵循TR1)
  • 根据C99标准格式化和解析无穷大和NaN的构面(这些可用于在文本流中便携式处理无穷大和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写入属性映射,当您必须提供参数但并不关心输出时很有用。
  • 详情请参见变更日志

图(快速通道)

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

对图库进行了一些添加和修改,包括:

  • 两个新的图类(无向和有向),旨在使库更容易被新开发者使用。
  • 一套图度量,包括度数和接近中心性、平均测地线距离、离心率和聚类系数。
  • 一种用于访问有向图中所有循环的算法(1970年代的Tiernan算法)。它也适用于无向图,但会报告两次循环(每个方向一次)。
  • 一种用于访问图中所有团的算法(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
描述 通用工厂。

词法分析器

作者 Ben Hanson
审查经理 需要志愿者
下载 http://boost-consulting.com/vault/index.php?action=downloadfile&filename=boost.lexer.zip&directory=Strings%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日志记录库允许这样做,支持很多场景,从非常简单(将所有内容转储到一个目标)到非常复杂(多个日志,一些启用/一些不启用,级别等)。它具有非常简单灵活的接口、高效的消息过滤、线程安全、格式化程序和目标、易于操作日志、根据应用程序的需要查找最佳日志记录器/过滤器类,您可以定义自己的宏等等!

享元模式

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

无序容器

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

开发中库

数据流

作者 Stjepan Rajko
描述 数据流库为数据生产者、消费者以及两者之间的连接提供通用支持。它还为几种特定的数据流机制提供层,即Boost.Signals、VTK数据/显示管道和普通指针。数据流库来自Signal Network GSoC项目,由Doug Gregor指导。
状态 我正在完善数据流库以进行提交,并预计在未来几个月内将其添加到审查队列中。我目前正在解决库设计中的一些缺陷,补充缺失的功能,并在不同的数据流机制(目前是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个月内完成它。

请告知我们您目前正在开发的任何打算提交审查的库。