这几天突然心血来潮,看了看C++11的“新”特性。虽然C++11早就出了,但是一直没有关注。我已经很久没用C++了,Python(以及Java,Ruby)几乎包办了我日常所有的编程任务。但是没想到一发不可收,C++这样一门历史悠久的语言在今天还能做出如此革新,实在可敬可佩。新加入的特性完全颠覆了我对C++的认识,就像是见到了一门熟悉的新语言,感觉很奇妙。网上大都批评C++更加复杂了。但加入的特性在其他语言基本上能找到影子,如果使用过Python、Ruby这样的脚本语言,这些新特性的引入是很自然地一件事。抱怨C++更加复杂的同学,我很怀疑有没有真正严肃地使用过C++,亲自试一试这些特性。大部分的功能,只需要半天就能应用于实际开发,对学习成本没大的影响。我感觉现在对C++有些过于妖魔化了,C++过于复杂的印象已经建立,不论语言设计者做什么努力,喷子总能找到喷的理由,为黑而黑。。。
这次标准的更新,总的感觉是,
- 向脚本语言靠拢。用元编程实现类型推导、匿名函数,静态模拟动态。语法糖很甜~
- 标准库增强。正则表达式、哈希表、线程库的加入,补足缺失的功能,更像一门现代语言。
编译器选择
C++实在是对编译器实现的挑战,现在完全支持C++11的编译器好像只有gcc 4.8.1和clang 3.3,都是2013年刚发布的。做下广告,LLVM/Clang近几年步调很快,与XCode结合实乃神器,我已经用它取代gcc作为主力编译器了,