Boost C++ 库

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

2006年4月评审向导状态报告

新闻

2006年4月1日 -- “提升特性”评审开始(快速通道)建议向 type_traits 库添加 promote、integral_promotion 和 floating_point_promotion 类模板。

2006年4月6日 -- “函数类型”评审开始(快速通道)该库提供了一种元编程工具,用于分类、分解和合成函数、函数指针、函数引用和成员函数指针类型。

2006年3月22日 -- Asio 已接受公告:https://lists.boost.org/Archives/boost/2006/03/102287.php

2006年2月17日 - 共享内存库已接受公告:https://lists.boost.org/boost-announce/2006/02/0083.php

2006年2月5日 - 固定字符串库被拒绝公告:https://lists.boost.org/boost-announce/2006/02/0081.php

我们需要有经验的评审经理。请查看需要经理的库列表,并查看它们的描述。如果您可以担任其中任何一个库的评审经理,请发送电子邮件给 Ron Garcia 或 Tom Brinkman,邮箱地址分别为“garcia at cs dot indiana dot edu”和“reportbase at gmail dot com”。

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

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

评审队列

  • 提升特性 - 2006年4月1日(快速通道)
  • 函数类型 - 2006年4月6日(快速通道)
  • Fusion
  • Pimpl 指针
  • 属性树
  • 物理量系统
  • 侵入式容器

函数类型(小型重新评审)

作者 Tobias Schwinger
评审经理 Tom Brinkman
下载 http://boost-sandbox.sourceforge.net/vault/
描述

此库提供了一种元编程工具,用于分类、分解和合成函数、函数指针、函数引用和成员函数指针类型。出于本文档的目的,这些类型统称为函数类型(这与标准定义不同,并从程序员的角度重新定义了该术语,以指代涉及函数的最常见类型)。

此库引入的类应符合 Boost 元编程库 (MPL) 的概念。

函数类型库使用户能够
  • 测试任意类型是否为指定类型的函数类型,
  • 检查函数类型的属性,
  • 使用 MPL 序列操作查看和修改封装的函数类型的子类型,以及
  • 合成函数类型。

此库支持可变参数函数,并且可以配置为支持非默认调用约定。

提升特性

作者 Alexander Nasonov
评审经理 Tobias Schwinger
下载 http://cpp-experiment.sourceforge.net/promote-20050917.tar.gz
描述

建议向 type_traits 库添加 promote、integral_promotion 和 floating_point_promotion 类模板。

Alexander 在不同的编译器上进行了尝试,结果各不相同:GNU/Linux (gentoo-hardened):gcc 3.3 和 3.4,Intel 7、8 和 9 Windows:VC7 免费编译器 Sparc Solaris:Sun C++ 5.3 和 5.7

有关哪些内容已损坏,请参阅 promote_enum_test.cpp 开头的注释。

侵入式容器

作者 Olaf Krzikalla
评审经理 Thorsten Ottosen
下载 http://people.freenet.de/turtle++/intrusive.zip
描述 虽然侵入式容器在 C 中被广泛使用,但由于标准容器的存在,它们在 C++ 世界中越来越被遗忘,而标准容器不支持侵入式技术。Boost.Intrusive 不仅将此技术重新引入 C++,还将实现封装在类似 STL 的接口中。因此,任何熟悉标准容器的人都可以轻松使用侵入式容器。

Fusion

作者 Joel de Guzman
评审经理 Ron Garcia
下载 http://spirit.sourceforge.net/dl_more/fusion_v2/ http://spirit.sourceforge.net/dl_more/fusion_v2.zip
描述

Fusion 是异构容器、视图和算法的库。 一组开箱即用的异构容器(向量、列表、集合和映射)以及提供了对数据进行各种可组合视图的视图类。 容器和视图遵循通用的序列概念,其底层迭代器概念将所有内容绑定在一起,适当地使算法完全通用,适用于所有序列类型。

该架构在某种程度上模仿了 MPL,而 MPL 又模仿了 STL。 它被代号为“fusion”,因为该库是编译时元编程与运行时编程的“融合”。

Pimpl 指针

作者 Asger Mangaard
评审经理 需要志愿者
下载 Boost 沙箱(http://boost-consulting.com/vault/)在 pimpl_ptr 下。
描述 pimpl 惯用法广泛用于减少编译时间和禁用代码耦合。 它通过将类的私有部分从 .hpp 文件移动到 .cpp 文件来实现此目的。 但是,它的实现可能很棘手,并且存在许多陷阱(尤其是在内存管理方面)。 pimpl_ptr 库是一个单头文件,实现了一个特殊的基于策略的智能指针,以极大地简化 pimpl 惯用法的实现。

属性树

作者 Marcin Kalicinski
评审经理 需要志愿者
下载 Boost 沙箱仓库 - property_tree_rev4.zip http://kaalus.atspace.com/ptree
描述 属性树是一种数据结构 - (键、值)对的树。 它与其表亲“通常”属性映射不同,因为它具有层次结构,而不是线性的。 因此,它更像是极简主义的文档对象模型,但不受任何特定文件格式的约束。 它可以存储 XML 文件、Windows 注册表、JSON 文件、INI 文件,甚至命令行参数的内容。 该库包含所有这些格式的解析器,以及更多。

物理量系统

作者 Andy Little
评审经理 需要志愿者
下载 http://tinyurl.com/7m5l8
描述 PQS(物理量系统)用于在 C++ 程序中建模物理量。 与使用内置类型相比,其优点包括:捕获量纲分析中的错误、详细的语义规范,用于在单位之间进行可靠且可重复的转换以及源代码的自我记录。 PQS 基于国际单位制 (SI) 的原则和指南。 该库使用通用语法预定义了大量量、物理和数学常量。 该库还包括(或将很快包括)用于以代数方式操作量的类,例如角度(弧度、球面度、度、分、秒)以及用于更高级的物理系统建模的向量、矩阵和四元数。

正在开发的库

几何库 - 作者 - Andy Little (?)

C2_functions 库 - 作者 - Marcus Mendenhall

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