Boost C++ 库

...世界上最受推崇和专业设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

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

新闻

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日 - Shared Memory Library 已接受公告: https://lists.boost.org/boost-announce/2006/02/0083.php

2006年2月5日 - Fixed String Library 拒绝公告: 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 Pointer
  • Property Tree
  • Physical Quantities System
  • Intrusive Containers

Function Types (mini-re-review)

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

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

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

Function Types 库使用户能够
  • 测试任意类型是否为指定种类的函数类型,
  • 检查函数类型的属性,
  • 使用 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 free compiler Sparc Solaris: Sun C++ 5.3 和 5.7

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

Intrusive Containers

作者 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 是一个异构容器、视图和算法库。 一组异构容器(vector、list、set 和 map)与视图类一起开箱即用,视图类呈现了对数据的各种可组合视图。 容器和视图遵循通用的序列概念,并具有底层的迭代器概念,该概念将所有内容绑定在一起,从而使算法在所有序列类型上完全通用。

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

Pimpl Pointer

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

Property Tree

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

Physical Quantities System

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

正在开发中的库

Geometry Library - 作者 - Andy Little (?)

C2_functions Library - 作者 - Marcus Mendenhall

请告知我们您目前正在开发的任何计划提交审核的库。