Effective C++(十二)

该部分主题是杂项讨论,已经是书的尾声了。先介绍剩下的三个条款,然后再发表笔者这段时间的感想吧。

条款53:不要轻忽编译器的警告

笔者认为如果不是没办法解决,no warnings应该是需要满足的,这个条款也不需要过多的介绍,直接给出书上的建议吧:

  • 严肃对待编译器发出的警告信息。努力在你的编译器的最高警告级别下争取no warnings
  • 不要过度依赖编译器的报警能力,因为不同编译器对待事情的态度并不相同。一旦移植到另一个编译器上,原本依赖的警告信息有可能消失。

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

既然作为C++的使用者,当开始开发实际的项目的时候,肯定会用到语言提供的库,因为重复造轮子对于项目开发来说是一件成本极高的事情。而了解STL的接口,可以节省大部分的开发时间。

TR1自身只是一份文档,而条款55提及的Boost库实现了文档中的大多数。

条款55:让自己熟悉Boost

笔者认为,Boost里面很多特性已经成为了C++11标准了,其中的智能指针,function对象等。C++因为历史原因,语言特性的更新速度较其他流行语言慢,虽然现在C++1x不断地提出新的特性标准。但到目前为止(2018年),C++11才成为主流,虽然C++14已经发布了不少时间,C++17接近发布的尾声了。然而现在大部分的厂商才较好地实现了C++11的特性,所以一些实用的功能而标准库,C++程序员可以尝试去Boost里面找找。

书上也讲了不少,但是笔者认为,最后这两个条款,告诉读者去哪里能了解就可以了。至此,Effective C++一书完结。

后记

在写Effective C++这个系列的博客的时候,中间有那么一丝一丝的感想,到了结束写后记的时候却感觉没什么可以写的。

笔者应该算是脱离了初学者时期的人了,在根据自己理解写下博客的时候,前半本的条款应该多多少少有实践经验,写起来比较快。到了2/3这样地方的时候,明显实践不够了,需要照着原书内容看几遍才能想通道理。这个时候脑子里轻轻飘过放弃这个系列后面部分的念头,不过最后还是坚持下来了。

终于完成了这个系列。同时也意识到自己实践还不够,革命尚未成功。

感想就先写这么多吧。