C++0X的三件好东西(零)

原创 2010年09月11日 11:01:00

先说一些废话,可以跳过不看。

我主张,在具备基础之后,学习任何新东西,都要抓住主线,突出重点。对于关键理论的学习,要集中精力,速战速决。而旁枝末节和非本质性的知识内容,完全可以留给实践去零敲碎打。

原因是这样的,任何一个高级的知识内容,其中都只有一小部分是有思想创新、有重大影响的,而其它很多东西都是琐碎的、非本质的。因此,集中学习时必须把握住真正重要那部分,把其它东西留给实践。对于重点知识,只有集中学习其理论,才能确保体系性、连贯性、正确性,而对于那些旁枝末节,只有边干边学能够让你了解它们的真实价值是大是小,才能让你留下更生动的印象。如果你把精力用错了地方,比如用集中大块的时间来学习那些本来只需要查查手册就可以明白的小技巧,而对于真正重要的、思想性东西放在平时零敲碎打,那么肯定是事倍功半,甚至适得其反。

因此我对于市面上绝大部分开发类图书都不满——它们基本上都是面向知识体系本身的,而不是面向读者的。总是把相关的所有知识细节都放在一堆,然后一堆一堆攒起来变成一本书。反映在内容上,就是毫无重点地平铺直叙,不分轻重地陈述细节,往往在第三章以前就用无聊的细节谋杀了读者的热情。为什么当年侯捷先生的《深入浅出MFC》和 Scott Meyers 的 Effective C++ 能够成为经典?就在于这两本书抓住了各自领域中的主干,提纲挈领,纲举目张,一下子打通读者的任督二脉。可惜这样的书太少,就算是已故 Richard Stevens 和当今 Jeffrey Richter 的书,也只是在体系性和深入性上高人一头,并不是面向读者的书。

最近我闲逛各技术社区,最深的一个感受,就是开发者的niubility value也跟中国社会的 income distribution 一样,呈现严重的两极分化状态。所以我建议那些老鸟们,多做一点提纲挈领的总结工作,把真正紧要的东西总结出来,给社区一些贡献。

我现在只在业余时间看看技术,写写程序,聊以自娱,对于最近一年多的风起云涌,了解有限。下面所说,如果有错误,请指出。

言归正传。

C++0X出来之后,网上对它的讨论已经很丰富,大大小小几十个新的特性,如果详细论述,当然又是一本(平庸的)厚书。但在我看来,其中很多特性是不用花太大精力的。分这么几类:

1. 亡羊补牢的,早就应该有,没有就该遭雷劈的。比如unordered_table, shared_ptr/weak_ptr, regexp, auto/decltype。

2. 锦上添花,可有可无的。比如 tuple, array container, range-base for, initializer lists, delegate/inheriting constructors, nullptr等等。

3. 犄角旮旯,库开发专用工具,一般不推荐使用的:如static_assert、可变模板参数等。

4. 还不成熟的,没有完全想清楚的:主要是 thread,其中的 future, promise等抽象,勇气可嘉,但有早产嫌疑,仍需留院观察。

那么C++0X中真正的主角,值得你投入精力去学习的,有可能对你的编程实践构成重大影响的,我认为就三个东西:

1. Rvalue reference;

2. function/bind;

3. Lambda expression and closure.

这三个东西,网上的讨论也已经有很多了。我也来凑凑热闹,会陆续写三篇简明扼要的东西,介绍它们的厉害。

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

C++0X的三件好东西(零)

先说一些废话,可以跳过不看。 我主张,在具备基础之后,学习任何新东西,都要抓住主线,突出重点。对于关键理论的学习,要集中精力,速战速决。而旁枝末节和非本质性的知识内容,完全可以留给实践去零敲碎打。 ...
  • qiangchen99
  • qiangchen99
  • 2015年01月25日 23:12
  • 165

c++11 别名C++0x

C++的最新正式标准,由C++标准委员会于2011年8月12日公布,并于2011年9月出版。2012年2月28日的国际标准草案(N3376)是最接近于现行标准的草案(编辑上的修正)。此次标准为C++9...
  • pizi0475
  • pizi0475
  • 2014年08月30日 08:16
  • 2452

好东西传送门

ios 资源库 : http://app.memect.com/doc/ios.htmlandroid 资源库:http://app.memect.com/doc/android.html机械学习:...
  • langwang2
  • langwang2
  • 2016年06月22日 13:30
  • 260

《C++0x漫谈》系列

05年开始关注C++0x,其时C++0x的大部分草案其实都已经初具雏形。但几个重大的特性:concepts, rvalue, memory-model, variadic-templates等都还在激...
  • pongba
  • pongba
  • 2007年04月11日 20:33
  • 13364

检测c++0x/11

很久没有用g++ dump编译器宏了,使用方法可参考:http://blog.csdn.net/jocks/article/details/7774527我的验证方法是:mipsel-linux-g+...
  • xiaoyur347
  • xiaoyur347
  • 2017年04月21日 23:13
  • 235

tail -f -F是个好东西

tail -f -F是个好东西, 动态检测日志。 tail -f log.txt tail -F log.txt
  • bruceyang2009lzu
  • bruceyang2009lzu
  • 2016年04月02日 18:32
  • 223

老师也不是什么好东西

转自:http://column.bokee.com/148205.html作者: 张先胜老师同志们,我叫张先胜,张先胜就是我,是你们的同事,骂老师实际上是在骂自己。 千万不要认为站讲台的人知识都丰富...
  • musttieying
  • musttieying
  • 2006年06月06日 12:14
  • 1199

Qt Creator中如何添加C++0x支持

Qt Creator中如何添加C++0x支持 最近在学习多线程编程,本人平时习惯使用Qt Creator写程序,只是作为C++编辑器,很少使用Qt library中的类。 Multi Thread...
  • kafeiwuzhuren
  • kafeiwuzhuren
  • 2014年04月03日 08:50
  • 1196

发现酒不是个好东西

发现酒不是个好东西。其实我早就知道它不是个好东西了,只不过最直观的认为不过是最近的事情,因为我发现它的虚伪,它让我越来越清醒。有时候清醒真是一种恐怖的心境,它让你做过的所有事情无所遁形,如白天的风景一...
  • nicch
  • nicch
  • 2006年09月09日 03:34
  • 636

cmake使用c++0x

因为想用template aliases特性,必须要GCC4.7. 又不想编译源代码,所以按照下面的方法安装。 [plain] view plaincopyprint?...
  • zhangwu416826
  • zhangwu416826
  • 2013年01月14日 16:00
  • 2095
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++0X的三件好东西(零)
举报原因:
原因补充:

(最多只允许输入30个字)