这几天写了两篇博客,很多老朋友关切,问了一些问题。
比如说,怎么又有时间关心技术了?是不是没那么忙了?我说,其实一样的忙,只不过兴致所致,牺牲一些休息时间罢了。说不定一个猛子扎下去,又是长时间潜水。
再比如说,怎么还在搞C++?我说,我没搞C++,一直以来都是C++在搞我们,我只不过发表一点被搞以后的感想。
有人问,你要讲的那三个C++特性,网上资料一大堆,你就免了吧。我说,如果我有时间,我会写的跟网上所有人的写法都不一样。比如说,讲 function/bind/lambda/closure,我会从 callback 讲起,回顾一下 C++中的 virtual function和成员函数指针,MFC中的message mapping,Borland C++Builder中的event handling,WTL的 CRTP 模拟虚函数,然后谈谈为什么 Java 需要加入 inner class,为什么C#把 delegate 作为first class citizen,以及 Qt 是如何用 meta-object 系统打造出迄今为止C++最漂亮的GUI框架,以及所有以上一切,在简单的 C 前是多么的多余和废柴。比如说,如果讲 rvalue reference,我会从孤魂野鬼似的匿名临时对象讲起,从 const T&,讲到 RVO/NRVO,说不定还会触及 expression template。
但是&