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.

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

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/myan/article/details/5877305

从零学Python(3.x)

本课程以最新的python3.X为基础进行讲解; 课程定位为小白、编码零基础人群; 课程授课方式课件+案例+Demo,简单上手,理解深刻 循序渐进,前后呼应。
  • 2017年12月07日 15:30

介绍几个学习C语言编程的链接

(1) C 语言常见问题集http://c-faq-chn.sourceforge.net/ccfaq/index.html(2)C语言编程常见问题解答(目录) http://www.cstudyho...
  • pony12
  • pony12
  • 2006-10-20 17:22:00
  • 627

为什么使用C++

为什么使用C++?在你皱眉准备关掉这个网页之前,试着回答这样一个简单的问题。 答案是效率,是吗?每个人都知道答案。但是,我们应该以更专业的角度来讨论一种编程语言或是与之相关的事情。那么,让我...
  • yiyi__baby
  • yiyi__baby
  • 2015-06-02 18:50:58
  • 838

VB 程序大揭秘(转载)用VB的不得不看的好东西!

http://cnprogram.myrice.com/article/vb/vb396.html 程联盟--技术文章 VB 程序大揭秘           1.Visual Basic程序概况   ...
  • dong127
  • dong127
  • 2005-08-29 15:09:00
  • 5536

C 和 C++ 的没落

c++在端游和服务器上依然有优势。但是服务器上java也占有很大的份额。 C 和 C++ 的没落,不仅是因为 CPU 时钟周期的关系,而且因为关系到了开发者的时间 全球大约有400万C...
  • zhangbinsijifeng
  • zhangbinsijifeng
  • 2016-01-12 10:21:07
  • 971

C++词汇解析集锦 编程开发人员必备

(转:http://www.uml.org.cn/c%2B%2B/200709243.asp)1. 保留字C++中,保留字也称关键字,它是预先定义好的标识符。见关键字的解释。2.关键字C++中已经被系...
  • dragoo1
  • dragoo1
  • 2017-01-17 21:25:53
  • 164

给Android程序员的一些面试建议

【转载自】https://mp.weixin.qq.com/s?__biz=MzA5MzY4NTQwMA==&mid=400071189&idx=1&sn=8c7d2a5523f340728a4f7e...
  • u012269126
  • u012269126
  • 2016-09-04 12:22:56
  • 221

C++11中的变参模板的使用

在新的C++11标准里提供了变参模板,这个类似于在C语言里的printf这个打印函数,参数可以是随机的。当时记得在写嵌入式底层的时候儿需要实现一个类似于printf的函数,还使用var_start,v...
  • fpcc
  • fpcc
  • 2017-01-16 10:59:39
  • 1554

C++的可移植性和跨平台开发

概述   今天聊聊C++的可移植性问题。如果你平时使用C++进行开发,并且你对C++的可移植性问题不是非常清楚,那么我建议你看看这个系列。即使你目前没有跨平台开发的需要,了解可移植性方面的知识对...
  • sinat_24143931
  • sinat_24143931
  • 2016-02-29 23:48:47
  • 1111

记一次C++拷贝构造函数带来问题

C++拷贝构造函数是类对象初始化赋值,传参
  • sun_xiaofan
  • sun_xiaofan
  • 2014-11-07 13:38:35
  • 775
收藏助手
不良信息举报
您举报文章:C++0X的三件好东西(零)
举报原因:
原因补充:

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