Effective C++ 条款54-55
2015-06-18 10:44
316 查看
条款54:让自己熟悉包括TR1在内的标准程序库
本书中的C++规范是在1998年制定的。现在C++11,即C++0x已经制定,且C++14在讨论中。本条款讨论内容是关于Boost库的,当时没有制定新标准,一些语言上的新特性以技术报告内容程序给大家,TR1代表Technical Report 1。现在来看一下C++98加如的标准程序库有哪些:
STL,即Standard Template Library标准模板库。
iostreams,包含用户自定义缓冲功能、国际化I/O,以及先定义好的对象cin、cout、cerr和clog。
国家化支持,包括多区域能力。
数值处理,包括复数模板(complex)和纯数值数值(valarray)。
异常阶层体系(exception hierarchy)。
C89标准程序库。
TR1详细叙述了14个新组件(components,即程序机能单位),放在命名空间std::tr1内。下面展示一下TR1组件实例:
智能指针
tr1::function,可以表示任何callable entity(可调用物,即任何函数或函数对象),只要签名复合目标。
tr1::bind,它能做STL绑定器(binders)bind1st和bind2nd所做的每一件事,且更多。
把TR1组件划分为2组,第一组提供彼此互不相干的机能:
Hash table,可以用来实现set、map等。
正则表达式(Regular expression),包括以正则表达式为基础的字符串查找和替换等。
Tuples(变量组),这是标准程序库中的pair template的新一代制品。
tr1::array,本质是一个支持成员函数begin和end的数组。
tr1::mem_fn,这是个语句构造上与成员函数指针(member function pointer)一致的东西。
tr1::reference_wrapper,一个让reference的行为更像对象的设施。
随机数(random number)生成工具,它大大超越了rand。
数学特殊函数。
C99兼容扩充。
第二组TR1组件由更精巧的template编程技术构成
Type traits,一组traits classes(**条款**47),用以提供类型的编译期信息。
tr1::result_of,这是个template,用来推导函数调用的返回类型。
总结
C++的标准程序的主要机能由STL、iostream、locales组成。并包含C99标准程序库。
TR1添加了智能指针、一般化函数指针、hash-based容器、正则表达式以及另外10个组件的支持。
TR1只是一份规范,为获得TR1提供的好处,需要一个实物,例如Boost。
条款55:让自己熟悉Boost
Boost库是一个高质量、源码开发、平台独立、编译器独立的程序库。Boost是一个C++开发者集结的社群,其网址为http://boost.org。Boost有着其他C++组织没有的影响里。1、Boost有C++标准委员会创建,其目标为:作为一个可被加入标准C++之各种功能的测试场。2、它接纳程序的过程,以公开进行的同僚(public peer review)为基础。
下面介绍Boost程序库的类目
字符串与文本处理
容器
函数对象和高级编程
泛型编程
模板编程
数学和数值
正确性与测试
数据结构
语言间的支持
内存杂项
总结
Boost是个社群,也是一个网址。致力于免费、源码开发、同僚复审的C++程序库开发。Boost在C++标准化过程中扮演深具影响里的角色。
Boost提供许多TR1组件实现品,以及其他许多程序库
相关文章推荐
- C++中赋值操作符为什么要返回引用类型
- C++实现设计模式 - STATE(状态)—对象行为模式(第二十个)
- 画数组的直方图
- C++12.1.4 类的前向声明、不完全类型类
- 作用域内枚举(C++11)
- POJ 1338 Ugly Numbers
- C语言易混淆关键词详解-const,static,extern,typedef,声明
- c++ builder 俩种不同风格的窗体
- std::string字符串分割
- C语言中##和#argument预处理运算符
- 浅谈C++多态性
- 嵌入式C语言编程规范(个人规约)
- 嵌入式C语言编程规范(个人规约)
- 嵌入式C语言编程规范(个人规约) 分类: 嵌入式开发学习 2015-06-18 09:51 37人阅读 评论(0) 收藏
- c语言: 修改参数的地址,及注意事项
- chapter13test4
- c语言: 生成随机数
- 对《深入C++对象模型》中的一个疑问——虚函数表的type_info的位置
- effective c++
- (C语言)精髓——指针