《Effective C++》 总结篇(杂项讨论)

条款五十三:不要轻忽编译器的警告

许多程序员习惯性忽略编译期警告。毕竟如果问题很严重应该给一个错误信息而非警告。但警告是依赖编译器的,所以可能换一个编译器甚至警告就消失了。

请记住:
严肃对待编译器发出的警告信息。努力在你的编译器的最高(最严苛)警告级别下争取“无任何警告”的荣誉。
不要过度依赖编译器的报警能力,因为不同的编译器对待事情的态度并不相同。一旦移植到另一个编译器上,你原本依赖的警告信息会可能消失。

条款五十四:让自己熟悉包括TR1在内的标准程序库

在讨论TR1之前,先回顾一下C++98列入的C++标准程序库:
STL。
Iostream。覆盖用户自定缓冲功能
国际化支持,包括多区域的能力。促进Unicode有所帮助
数值处理,复数,纯复数
异常阶层体系,包括对基类异常以及更深继承的classes
C89程序库。

TR1详细叙述了14个新组件,并且都放在std命名空间下。
更准确的说是它嵌套的tr1::下
trl包括:
智能指针。
tr1::function。可调用物,也就是说是一个函数对象
tr1::bind。能够做stl绑定器,可以和const及non-const成员函数协作,可以和by-reference参数协作。
Hash tables。用来实现sets,multisets,maps,multi-maps.
正则表达式
Tuples
tr1::array。stl化的数组
trl::men_fn。与成员函数指针一致
tr1::reference_wrapper。让一个reference的行为更像对象。
随机数。比rand厉害
数学特殊函数,Lagueere多项式,Bessel函数,完全椭圆积分等
C99兼容扩充。

第二组TR1组件由更精巧的template编程技术(模板元编程)构成
1.Type traits,一组traits classes,用以提供类型的编译期信息
2.tr1::result_of 这是个template,用来推导函数调用的返回类型。

请记住:
C++标准程序库的主要机能由STL,iostreams,locales组成。并包含C99标准程序库。
TR1添加了智能指针,一般化函数指针,hash-based容器,正则表达式,以及另外10个组件支持。
TR1自身只是一份规范。为获得TR1提供的好处。你需要一份实物。一个好的实物来源是Boost

条款五十五:让自己熟悉Boost

我没用过。不懂

请记住:
Boost是一个社群,也是一个网站。致力于免费,源码开放,同僚复审的C++程序库开发。Boost在C++标准化过程中扮演深具影响力的角色。
Boost提供许多TR1组件实现品,以及其他许多程序库。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值