2009 年 12 月审查向导状态报告
新闻
多边形库已接受
- Boost 1.40 发布
- 新增库:无 修订库:累加器、Asio、循环缓冲区、文件系统、Foreach、函数、Fusion、哈希、进程间通信、侵入式、MPL、程序选项、Proto、Python、序列化、无序、Xpressive
几何库已接受
- Boost 1.41 发布
- 新增库:属性树 修订库:日期时间、文件系统、Iostreams、数学、多索引容器、Proto、Python、正则表达式、Spirit、系统、线程、无序、实用程序、Wave、Xpressive
MSM 库审查正在进行中
约束值审查 - 审查结果尚未确定
旧问题
2007 年 8 月被接受的时间序列库尚未提交到 SVN。
浮点实用程序库尚未提交到 SVN。它计划与 Boost.Math 库集成。
开关库于 2008 年 1 月被暂时接受,但尚未提交进行小型审查和完全接受。
Phoenix 库于 2008 年 9 月被暂时接受,但尚未提交进行小型审查和完全接受。
对于仍然在等待进入 SVN 的库,请准备好并将它们放入存储库中。开发者在创建库方面做了一些很棒的工作,所以不要错过与他人分享这些工作的机会。
一般公告
一如既往,我们需要经验丰富的审查经理。审查队列一直在大幅增长,但我们只有很少的志愿者,所以如果可能的话请管理审查,如果不能,请务必关注审查时间表并参与其中。请查看需要经理的库列表并查看它们的描述。总的来说,审查经理是活跃的 Boost 参与者或库贡献者。如果您能担任其中任何一个的审查经理,请分别给 Ron Garcia 或 John Phillips 发送电子邮件,"garcia at osl dot iu dot edu" 和 "phillips at mps dot ohio-state dot edu"。
我们也缺乏审查员。虽然我们都理解时间压力和完成付费工作的必要性,但 Boost 的优势在于您提交的详细和明智的审查。最近的一项努力试图确保至少五个人承诺在开始审查期之前提交审查。考虑自愿参加这项工作,甚至尽早抽时间创建审查。没有规定说你只能在审查期内进行审查。
我们将在这份报告中发布一个指向 www.boost.org 的链接。如果您希望我们在发布之前对这份报告进行任何修改或添加,请给 Ron 或 John 发送电子邮件。
如果您是库作者,并且计划在未来 3-6 个月内提交库进行审查,请给 Ron 或 John 发送一个简短的库描述,我们会将其添加到下面的正在构建的库中。我们知道有很多库即将完成,但我们很难跟踪所有库。请让我们了解您的进度。
包含的审查队列不是一个传统的队列。它更像是一个等待审查的库的无序列表。因此,只要开发者准备好了,审查队列中的任何库都可以被审查,审查经理会与向导和开发者一起安排审查。它不是先进先出 (FIFO)。
审查队列
- 词法分析器
- 移位指针
- 日志记录
- 日志
- 加入
- Pimpl
- 任务
- 字节序
- 转换
- 排序
- GIL.IO
- 自动缓冲区
- 字符串转换
- 移动
- 容器
- 区间容器
- 类型特征扩展
- 线程间通信
- 位域
- 无锁
词法分析器
作者 | Ben Hanson |
---|---|
审查经理 | Eric Neibler |
下载 | Boost Vault |
描述 | 受 'flex' 启发的可编程词法分析器生成器。与 flex 一样,它使用正则表达式进行编程,并将状态机输出为利用等价类进行压缩的多个 DFA。 |
移位指针
作者 | Phil Bouchard |
---|---|
审查经理 | 需要 |
下载 | Boost Vault |
描述 | 智能指针通常针对特定资源(内存使用、CPU 周期、用户友好性等)进行优化,具体取决于用户需要充分利用什么。这种智能指针的目的是主要同时分配引用计数器(或所有者)和对象本身,以便简化动态内存管理,从而在内存映射上加速和降低成本。 |
日志记录
作者 | John Torjo |
---|---|
审查经理 | Gennadiy Rozental |
下载 | http://torjo.com/log2/ |
描述 | 如果使用得当,日志记录是一个非常强大的工具。除了帮助调试/测试之外,它还可以向您展示应用程序的使用方式。Boost 日志记录库允许做到这一点,支持许多场景,从非常简单(将所有内容转储到一个目标)到非常复杂(多个日志,一些启用/一些禁用,级别等)。它具有非常简单且灵活的界面、高效的消息过滤、线程安全、格式化程序和目标、易于操作日志、根据应用程序的需要找到最佳的记录器/过滤器类、您可以定义自己的宏等等! |
日志
作者 | Andrey Semashev |
---|---|
审查经理 | 需要 |
下载 | Boost Vault |
描述 | 该库旨在帮助为应用程序添加日志记录功能。它为许多广泛使用的功能提供开箱即用的支持,例如基于属性的格式化和过滤,将日志发送到 syslog 服务器或 Windows 事件日志,或简单地将日志存储到文件中。它还为从设置文件初始化库提供基本支持。该库也可以用于更广泛的任务,并实现收集和处理统计信息或通知用户有关应用程序事件的信息。 |
加入
作者 | Yigong Liu |
---|---|
审查经理 | 需要 |
下载 | http://channel.sourceforge.net/ |
描述 | Join 是一个基于 join 演算的异步、基于消息的 C++ 并发库。它适用于多线程应用程序和异步、基于事件的应用程序的编排。它遵循 Comega 的设计和实现,并使用 Boost 工具构建。它提供了一个高级并发 API,具有异步方法、同步方法和和弦,这些和弦是定义同步、异步和并发的“加入模式”。 |
Pimpl
作者 | Vladimir Batov |
---|---|
审查经理 | 需要 |
下载 | |
描述 | Pimpl 习语是一种简单但健壮的技术,可以通过分离接口和实现,然后隐藏实现来最大程度地减少耦合。该库为 Pimpl 习语提供了一种方便且灵活的通用部署技术。它看似完整且广泛适用,但仍然最小、简单且易于使用。 |
任务
作者 | Oliver Kowalke |
---|---|
审查经理 | 需要 |
下载 | |
描述 | 以前称为线程池 该库提供:* 线程创建策略
|
字节序
作者 | Beman Dawes |
---|---|
审查经理 | 需要 |
下载 | http://mysite.verizon.net/beman/endian-0.10.zip |
描述 |
转换
作者 | Vicente Botet |
---|---|
审查经理 | 需要 |
下载 | |
描述 | 不相关类型之间的通用显式转换。
|
排序
作者 | Steven Ross |
---|---|
审查经理 | 需要 |
下载 | |
描述 | 一组 3 个模板化的混合基数/比较排序算法,它们提供优于 std::sort 的最佳情况和平均情况性能:integer_sort,它对支持右移(默认值为 >>)和比较(默认值为 <)运算符的固定大小数据类型进行排序。float_sort,它通过安全地将标准浮点数转换为整数来对它们进行排序。string_sort,它对可变长度数据类型进行排序,并且针对 8 位字符字符串进行了优化。 所有 3 种算法都具有 O(n(k/s + s)) 运行时间,其中 k 是数据类型中的位数,s 是一个常数,并且内存开销有限(对于现实输入来说,以 kB 为单位)。在测试中,integer_sort 的速度从快 35% 到快 8 倍不等,具体取决于处理器、编译器优化和数据分布。float_sort 在 x86 处理器上的速度大约是 std::sort 的 7 倍。string_sort 的速度大约是 std::sort 的 2 倍。 |
GIL.IO
作者 | Christian Henning |
---|---|
审查经理 | 需要 |
下载 | GIL Google Code Vault |
描述 | boost::gil 的 I/O 扩展,它允许读取和写入各种图像格式(tiff、jpeg、png 等)。本次审查还将包括工具箱扩展,它为 gil 添加了一些常见的功能,例如新的颜色空间、算法等。 |
自动缓冲区
作者 | Thorsten Ottosen |
---|---|
审查经理 | 需要 |
下载 | 这里 |
描述 | Boost.AutoBuffer 为高效的动态本地缓冲区提供了一个容器。此外,该容器可用作 std::vector 的替代方案,提供更大的灵活性,有时性能更好。 |
字符串转换
作者 | Vladimir Batov |
---|---|
审查经理 | 需要 |
下载 | |
描述 | 该库在字符串到类型和类型到字符串转换领域采用了 boost::lexical_cast 的方法,建立在过去的 boost::lexical_cast 经验之上,并进一步发展了转换功能,以另外提供
它是一个必不可少的工具,其应用广泛地使用配置文件或必须处理/准备大量数据,例如在 XML 中。 |
移动
作者 | Ion Gaztanaga |
---|---|
审查经理 | 需要 |
下载 | http://svn.boost.org/svn/boost/sandbox/move/ 以及在线文档位于 http://svn.boost.org/svn/boost/sandbox/move/libs/move/doc/html/index.html |
描述 | 在 C++0x 中,移动语义是通过引入右值引用来实现的。它们允许我们实现 move() 而不会出现冗长或运行时开销。Boost.Move 是一个库,它提供工具来实现这些移动语义,不仅在具有右值引用的编译器中,而且在符合 C++03 的编译器中。 |
容器
作者 | Ion Gaztanaga |
---|---|
审查经理 | 需要 |
下载 | http://www.boostpro.com/vault/index.php?action=downloadfile&filename=boost.move.container.zip&directory=Containers& |
文档 | http://svn.boost.org/svn/boost/sandbox/move/libs/container/doc/html/index.html |
描述 | Boost.Container 库实现了多个知名容器,包括 STL 容器。该库的目标是提供标准容器中没有的更高级功能,或者为符合 C++03 的编译器提供最新的标准草案功能。 |
区间容器库
作者 | Joachim Faulhaber |
---|---|
下载 | |
文档 | http://herold-faulhaber.de/boost_itl/doc/libs/itl/doc/html/index.html |
审查经理 | 需要 |
描述 | 区间模板库 (Itl) 提供区间和两种区间容器:Interval_sets 和 interval_maps。Interval_sets 和 maps 可以像使用元素集或映射一样使用。但是,当元素以连续块(区间)的形式出现时,它们在空间和时间效率上要高得多。这在许多问题领域中很明显,特别是在处理与日期和时间相关问题的领域。 区间容器允许与 interval_sets 相交以使用分段。例如,您可能希望将区间容器与月份网格相交,然后遍历这些月份。 最后,interval_maps 在关联值上提供聚合,如果添加的区间与存储在 interval_map 中的区间重叠。此功能称为重叠聚合。它通过示例演示 typedef set<string> guests; interval_map<time, guests> party; guests mary; mary.insert("Mary"); guests harry; harry.insert("Harry"); party += make_pair(interval<time>::rightopen(20:00, 22:00),mary); party += make_pair(interval<time>::rightopen_(21:00, 23:00),harry); // party now contains [20:00, 21:00)->{"Mary"} [21:00, 22:00)->{"Harry","Mary"} //guest sets aggregated on overlap [22:00, 23:00)->{"Harry"} 从示例可以看出,interval_map 既具有分解行为(在时间维度上),也具有累积行为(在关联值上)。 |
类型特征扩展
作者 | Frederic Bron |
---|---|
审查经理 | 需要 |
下载 | |
描述 | 添加的目的是添加类型特征以检测类型 T 和 U 是否在 <、<=、>、>=、== 或 != 运算符的意义上可比较,即如果 t<u 在 t 为类型 T 且 u 为类型 U 时有意义(对于 <=、>、>=、==、!= 也是如此)。 添加了以下特征 is_equal_to_comparable<T,U> is_greater_comparable<T,U> is_greater_equal_comparable<T,U> is_less_comparable<T,U> is_less_equal_comparable<T,U> is_not_equal_to_comparable<T,U> 这些名称基于标准模板库的相应名称(<functional> 头文件,标准的 20.3.3 节)。 代码具有以下属性:* 如果 t<u 有意义则返回 true,并返回可转换为 bool 的值 * 如果 t<u 无意义则返回 false。* 如果 t<u 有意义且返回 void 则会发生编译时错误(避免编译时错误的一种方法是通过运算符返回 true,这是一个技巧,但它几乎没有意义,因为返回 false 更好) |
InterThreads
作者 | Vicente J. Botet Escriba |
---|---|
审查经理 | 需要 |
下载 | |
描述 |
(thread_decorator 和 thread_specific_shared_ptr)基于 Roland Schwarz 编写的 threadalert 的原始实现。 Boost.InterThreads 扩展了 Boost.Threads,添加了线程设置/清理装饰器、线程特定的共享指针、线程保持活动机制和线程元组。 |
位域
作者 | Vicente J. Botet Escriba |
---|---|
审查经理 | 需要 |
下载 | http://svn.boost.org/svn/boost/sandbox/bitfield,文档可在 http://svn.boost.org/svn/boost/sandbox/bitfield/libs/integer/doc/index.html 获得 |
描述 |
|
无锁
作者 | Tim Blechmann |
---|---|
审查经理 | 需要 |
下载 | |
文档 | |
描述 | boost.lockfree 提供了无锁数据结构的实现。无锁数据结构可以被多个线程访问,而无需使用阻塞同步原语(如保护)。无锁数据结构可以在实时系统中使用,在实时系统中,阻塞算法可能会导致高最坏情况执行时间,以避免优先级反转,或提高多处理器机器的可扩展性。
|
开发中的库
Persistent
作者 | Tim Blechmann |
---|---|
描述 | 一个基于 Boost.Serialization 的库,它提供对持久对象的访问,其接口尽可能接近访问内存中的常规对象。
请告知您目前正在开发的任何打算提交以供审核的库。 |
有关正在开发的库的当前列表,请参见 http://svn.boost.org/trac/boost/wiki/LibrariesUnderConstruction。