《Effective C++》知识点(9)--杂项讨论

53. 不要忽视编译器的警告

    53.1 严肃对待编译器发出的警告信息。努力在你的编译器的最高警告级别下争取"无任何警告"。

            在忽略某个警告之前,请确保你了解它意图说出的精确意义。

    53.2 不要过度依赖编译器的报警能力,因为不同的编译器对待事情的态度并不相同。一旦移植

            到另一个编译器上,你原本依赖的警告信息有可能消失。

54. 让自己熟悉包括TR1在内的标准程序库

    54.1 C++98标准库

成分包含
STL容器、迭代器、算法、函数对象、容器适配器、函数对象适配器
Iostreams用户自定缓冲功能、国际化I/O,以及cin,cout,cerr,clog
国际化支持包括多区域能力,如wchar_t、wstring
数值处理复数模板、纯数值数组
异常层次体系exception.logic_error,runtime_error
C89标准程序库1989 C 标准库

   54.2 TR1(Technical Report 1)组件

组件描述
智能指针shared_ptr,weak_ptr
tr1::function

是个template,以其目标函数的签名(指明参数和返回值类型)为参数。如

std::tr1::function<std::string (int)> func

tr1::bind是第二代绑定工具,比第一代bind1st,bind2nd好用
其它独立的Hash tables实现sets,multisets,maps,multimaps
正则表达式字符串查找和替换
Tuples可持有任意个数的对象,而pari只有两个对象
tr1::array支持begin,end的数组,它的大小固定
tr1::mem_fn成员函数指针,扩充了mem_fun,mem_fun_ref的能力
tr1::reference_wrapper让引用的行为更像对象
随机数生成工具超越了rand
数学特殊函数Laguerre多项式、Bessel函数、完全椭圆积分等
C99兼容扩充一堆函数和模板带进C++
templateType traits一组traits classes
tr1::result_of一个template,用来推导函数调用的返回类型

     54.3 TR1自身只是一份规范,为获得TR1提供的好处,你需要取得实现代码。Boost程序库包含

             了其中10个组件。

55. 让自己熟悉Boost

     55.1 Boost开发者社区  Boost C++ Libraries

     55.2 Boost组件

类别包含
字符串与文本处理类型安全的printf-like格式化动作、正则表达式及语汇单元切割和解析
容器array、大小可变的bitsets以及多维数组
函数对象和高级编程如lambda可以随时随地创建函数对象
泛型编程traits classes
模板元编程TMP,MPL(元编程程序库)
数学和数值有理数、八元数和四元数、常见公约数等
正确性与测试用来将隐式模板接口形式化的程序库
数据结构类型安全的unions以及tuple程序库
语言间的支持允许C++和Python之间的无缝互操作性
内存Pool程序库,用来做出高效率而区块大小固定的分配器以及多变化的智能指针
杂项CRC检验、日期和时间的处理、在文件系统上来回移动等待

全书完

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值