Boost C++ 库

...世界上最受尊敬和设计精良的 C++ 库项目之一。 Herb SutterAndrei AlexandrescuC++ 编码规范

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

新闻

2006 年 4 月 1 日 -- “Promotion Traits” 评审开始(快速通道)提议将 promote、integral_promotion 和 floating_point_promotion 类模板添加到 type_traits 库中。

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

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 发送一个简短的库描述,我们将将其添加到下面的“正在开发的库”中。我们知道有很多库即将完成,但是我们很难跟踪所有库。请让我们了解您的进度。

评审队列

  • Promotion Traits - 2006 年 4 月 1 日(快速通道)
  • Function Types - 2006 年 4 月 6 日(快速通道)
  • Fusion
  • Pimpl 指针
  • 属性树
  • 物理量系统
  • 侵入式容器

函数类型(迷你重新评审)

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

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

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

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

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

Promotion Traits

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

提议将 promote、integral_promotion 和 floating_point_promotion 类模板添加到 type_traits 库中。

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 Sandbox (http://boost-consulting.com/vault/) 在 pimpl_ptr 下。
描述 pimpl 惯用法被广泛用于减少编译时间并禁用代码耦合。它通过将类的私有部分从 .hpp 文件移动到 .cpp 文件来实现。但是,它的实现可能很棘手,并且存在很多陷阱(尤其是在内存管理方面)。pimpl_ptr 库是一个单头文件,实现了一个基于策略的特殊智能指针,以极大地简化 pimpl 惯用法的实现。

属性树

作者 Marcin Kalicinski
评审经理 需要志愿者
下载 Boost Sandbox Vault - 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

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