C++11的新功能特性对Boost库影响

《Boost程序库探秘——深度解析C++准标准库》之试读

        前一阵子还看到一篇文章,说C#要重蹈C++的覆辙,这里说的C++的覆辙是什么呢?是指C++语言过于臃肿的功能特性,导致学习人员的流失。文章说,语言最后的威力是“开发软件”,而不是“比拼新特性”

       在大学中,C++算是比较难学的语言。有些学校试图直接让学生们学习C++,结果效果不怎么好。这次,C++11又添加了大量新特性,如lambda,auto等,把C++弄的像动态语言一样。

       添加了那么多新特性,而为了照顾用户的习惯和已有的代码。又不能去除一些旧的特性,这样导致了C++越来越臃肿和复杂。记得在哪里看过,好像是塞伯斯塔的程序设计语言一书中说的吧:程序语言发展的一个重要的特性就是易学性。而语言的简洁程度在很大程度上影响了语言的易学性。况且在不抛弃老的特性的情况下,又添加了新的特性。会大大增加语言的学习成本。

       令人奇怪的是,C++Primer英文版第五版有1225页,而包含C++11的第六版C++Primer一书仍然只有1200页。并没有增加,反而减少了25页(第六版的C++Primer我没有读,不能评价其内容)。在未来,简洁且同样高效的类C语言——Go语言或许会对臃肿的C++发起挑战。

       当然,这只是我的看法,现在还说不清这种大杂烩会对C++的未来产生什么影响。

       阅读C++的代码,一直是一件痛苦的事,尤其是STL相关的。C++11的一些新特性,让C++代码的可读性大大增强。如自动类型推导auto,这在基本类型的使用时还没发现其优点,但是在使用模板时,auto就可以大大简化代码。引用一个例子:vector<int>::const_iteratorci = vi.begin();,在引入auto后,就可以简化成auto ci = vi.begin();

       此外,还有一些其他的特性值得关注,这里就先不一一细数了。

       这本书是关于Boost库的,C++11的出现,势必会对Boost现有的一些库产生影响。为了方便大家,下面就列出一些C++11对Boost库的影响列表(这个列表是网上收集整理翻译来的,可能不准确或不全,请大家见谅):

原Boost库 C++11新的特性或库
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值