输入/输出(Input/Output)Boost.Assign
Assign帮助把一个序列的值存入容器。它通过重载逗号操作符和括号操作符(用于函数调用的操作符)为用户提供了一种简便的赋值方法。这个库不仅对于原型设计风格(prototyping-style)的代码尤其有用,而且它的特性在其它时候也是同样有用的,因为使用这个库最终所产生的代码可读性非常好。也可以通过这个库使用list_of在需要的时候创建匿名数组。
Assign的作者是Thorsten Ottosen。
Boost.Filesystem
Filesystem库提供针对路径、目录和文件的可移植性操作。它所提供的高层抽象使得C++程序员可以写出经常在其它语言里才能实现的类似于脚本的操作。这个库提供了非常方便的算法用于全面地遍历目录和文件。书写可以在拥有不同文件系统的平台之间迁移的代码原本是非常困难的事情,在这个库的帮助下,也变得切实可行。
Filesystem的作者是Beman Dawes。
Boost.Format
这个库提供了根据格式字符串来格式化参数的功能,类似于printf,但是它是类型安全的。关于printf和与之类似的格式化函数最饱受争议的一点就是,它们在本质上是危险的;因为不能保证格式化字符串所指定的类型与实际的参数是相符的。除了消除这种不相符的机会,Format还允许针对用户定义类型的自定义格式化[4]。
Format的作者是Samuel Krempp。
Boost.Io_state_savers
Io_state_savers库可以用来保存IOStream对象的状态,并且可以在以后恢复这个状态,同时撤销这期间可能出现的任何状态。许多操作都会永久性地改变它们所操作的stream的状态,手工复位这些状态不仅很不方便而且很容易出错。这个库包括许多状态保存器,它们用于针对流(stream)的控制标识(control flags)、精度(precision)、宽度、异常掩码(exception masks)、流的本地化(locale)以及其它更多的东西。
Io_state_savers的作者是Daryle Walker。
Boost.Serialization
这个库允许任意的C++数据结构被保存到档案文件(archives),并且在以后从档案文件恢复出来。比如说,档案文件可以是,文本文件或者XML文件。Boost.Serialization具有高度的可移植性,并且提供了一系列丰富的功能,诸如类的版本化、C++标准库类的序列化,共享数据的序列化,等等很多。
Serialization的作者是Robert Ramey。
[4] 通过使用省略号来实现个数可变的参数的格式化函数是没法做到这一点的。