Boost C++ 库

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

版本 1.37.0

版本 1.37.0

2008 年 11 月 3 日 12:00 GMT

文档

下载
平台文件
unixboost_1_37_0.tar.bz2
boost_1_37_0.tar.gz
windowsboost_1_37_0.7z
boost_1_37_0.zip

新库

  • Proto:
    • 来自 Eric Niebler 的用于特定领域嵌入式语言的表达式模板库和编译器构建工具包。

更新的库

  • Asio:
    • 增强了 CompletionCondition 概念,其签名为 size_t CompletionCondition(error_code ec, size_t total),其中返回值指示下次读取或写入操作要传输的最大字节数。(旧的 CompletionCondition 签名仍然支持向后兼容)。
    • 新的 windows::overlapped_ptr 类,允许将任意重叠 I/O 函数(如 TransmitFile)与 Asio 一起使用。
    • 在最近版本的 Linux 上,现在使用 eventfd 描述符(而不是管道)来中断阻塞的 select/epoll 反应器。
    • 添加了 lowest_layer() 的 const 重载。
    • 同步读取、写入、接受和连接操作现在是线程安全的(这意味着现在允许在单个套接字上执行并发同步操作,如果操作系统支持)。
    • 基于反应器的 io_service 实现现在使用延迟初始化来减少仅用作消息队列的 io_service 对象的内存使用。
  • 循环缓冲区:
    • 添加了新方法 is_linearized()rotate(const_iterator)
    • 小的错误修复和文档更新。
  • 动态位集:
    • 构造函数“做正确的事”分派,类似于标准序列容器(遵循 库问题 438 的提议解决方案,目前在C++0x工作草案)。
    • 改进了文档、代码示例和实现。
  • 异常:
    • 支持非 RTTI 构建。
    • 优化。
    • 一个新的宏 BOOST_THROW_EXCEPTION,可以在抛出时使用它来代替 boost::throw_exception,以自动记录有关异常对象中抛出位置的信息。
  • 哈希:
  • 进程间:
    • 向容器添加了就地插入 (emplace(), emplace_back()...) 方法。
    • 容器现在可以用于递归类型。
    • 小的错误修复。
  • 侵入式:
    • 侵入式现在利用具有可变参数模板的编译器。
    • clone_from 函数现在复制关联容器的谓词和哈希函数。
    • 通过 incremental<> 选项向无序容器添加了增量哈希。
    • 小的错误修复。
  • 数学.特殊函数改进了反超几何函数的准确性和测试。
  • 类型特征增加了对 Codegear 编译器的更好支持。
  • 无序:
    • 将带有提示的 emplace 的重载重命名为 emplace_hint,如 n2691 中所指定。
    • <boost/unordered/unordered_map_fwd.hpp><boost/unordered/unordered_set_fwd.hpp> 提供转发头文件。
    • 将所有实现移动到 boost/unordered 目录中。

测试的编译器

Boost 的主要测试编译器是

  • 在 Mac OS X 10.4.10 上使用 Intel 和 Power PC 的 GCC 4.01
  • 在 Ubuntu Linux 8.10 上的 GCC 4.2.4
  • 在 Debian Sid 上的 GCC 4.3.2
  • 在 HP-UX Integrity 上的 GCC 4.2.1
  • 在 HP-UX 64 位上的 HP C/aC++ B3910B A.06.17
  • Visual C++ 9.0 SP1、8.0 和 7.1 SP1,全部在 Windows XP 上

Boost 的其他测试编译器包括

  • 在 NetBSD 上的 GCC 4.1.2
  • 在 OS:HP-UX B.11.31 U ia64 和 HP-UX B.11.31 9000/800 RISC 上的 HP aCC
  • 用于 AIX 的 IBM XL C/C++ Enterprise Edition,V10.1.0.0,在 AIX 版本 5.3.0.40 上
  • 在 Mac OS X 10.4.10 上的 Intel 9.1、10.0 和 10.1
  • 在 OSF1 V5.1 平台上的 Compaq Tru64 Unix 的 Compaq C++ V7.1-006。
  • 在 Sun Solaris 5.10 上的 Sun C++ 5.7、5.8、5.9 和 GCC 3.4.6。
  • 在 Linux 上
    • GCC 3.4.3、4.0.1、4.2.1、4.2.4、4.3.2。
    • 具有 C++0x 扩展的 GCC 4.3.2。
    • 在 64 位 linux 上的 GCC 4.1.1、4.2.1。
    • Intel C++ 8.1、9.0、9.1 和 10.0
    • QLogic PathScale(TM) 编译器套件:版本 3.1
    • 带有 stdcxx 的 Sun 编译器 5.9、5.10
  • 在 Windows 上
    • 使用 Visual C++ 7.1、8.0、9.0 和 10.0 的多个测试人员
    • 带有 Apache C++ 标准库 4.2.x 分支的 Visual C++ 7.1。
    • 带有 STLport 5.1 的 Visual C++ 8.0
    • 带有 STLport 5.1 的 Visual C++ 8.0 交叉编译,用于 Windows Mobile 5.0 Pocket PC SDK (ARMV4I)。
    • Intel 10.1,带有 Visual C++ 9 后端。
    • Borland 5.9.3 和 6.10.0
    • 64 位 Intel 10.1,带有 Visual C++ 9 后端。
    • 64 位 Visual C++ 9.0。
    • 带有 Apache C++ 标准库 4.2.x 分支的 64 位 Visual C++ 9.0。
    • Comeau C++ 4.3.10.1 beta 2,带有 Visual C++ 9 后端。

鸣谢

Beman Dawes、Eric Niebler、Rene Rivera 和 Daniel James 管理了此版本。