1.C++98中的标准程序库包括:
- STL(标准模板库):包括容器、迭代器、通用算法、函数对象、适配器(容器适配器和函数对象适配器)。
- 输入输出流:包括用户自定缓冲功能、国际化IO以及预定义的对象cin、cout、cerr和clog。
- 国际化支持:包括多区域支持,促进unicode。
- 数值处理:包括数值模板和纯数值数组。
- 异常:一个异常处理体系。
- C89标准程序库。
2.TR1表示Technical Report 1,它是一份规范,一个好的实现是Boost库。它的命名空间为std::tr1。
PS:本书写于2005年,当时的TR1标准还有所变更。2011年C++新标准包括了tr1中的大部分内容。关于TR1的维基百科条目:http://zh.wikipedia.org/wiki/C%2B%2B_Technical_Report_1 C++11的维基百科条目:http://zh.wikipedia.org/wiki/C%2B%2B0x。
3.TR1的内容:包括14个组件:
- 智能指针:包括tr1::shared_ptr和tr1::weak_ptr。
- tr1::function:表示任何符合目标的“可调用物”。
- tr1::bind:STL绑定器bind1st和bind2rd的扩展。
- Hash tables:用来实现哈希表(无任何可预期次序)的集合、多集合、图和多图。
- 正则表达式:提供正则表达式的功能。
- Tuple(元组):与Python中的元组类似。
- tr1::array:是个STL化的数组,大小固定,不使用动态内存。
- tr1::mem_fn:构造和成员函数指针一致。
- tr1::reference_wrapper:一个“让引用的行为更像对象”的设施。
- 随机数生成工具:比rand()强大得多。
- 数学特殊函数:包括Lagurange多项式、Bessel函数等数学函数。
- C99兼容扩充。
- Type traits:一组traits class,用来提供类型的编译期信息。
- tr1::result_of:是个模板,用来推导函数调用的返回类型。