看了一本C++11的书

最近看了一本C++11的书,名字叫做《深入理解C++11:C++11新特性解析与应用》。C++11已经出来这么久了,才想起来学习,实在是汗颜。本书名字叫做“深入”,但读完感觉也就是入门。对于使用过C++03/98,并想快速了解C++11新特性的人来说,这本书是不错的选择。

这本书是C++标准委员会成员和IBM XL编译器开发者共同编写的,所以对于C++11的许多语言细节介绍的比较清楚。尤其是第2、3、4、7章,每一个例子都很精细,甚至是过于精细。而对于5、6章,讲到智能指针和atomic/thread的时候,则相对粗略。本书的定位也是介绍C++11的新特性,而不是标准库。所以想深入学习标准库,还是得啃《C++标准库》(http://www.cppstdlib.com/)这本书的第二版。

手动敲了书中的绝大部分代码,并使用GCC4.8.2编译,多数例子是没有问题的。只有少数例子,可能标准中有,但我这个版本的编译器还没有实现。作者写书的时间也比较早,当时好多功能还没有编译器实现。比如对于3.1节的继承构造函数,在同时使用继承构造函数和类的成员初始化列表的时候,感觉GCC的实现并不完整。以后这个地方注意一下。

据说C++11新加了140个新特性,修正了C++03标准的600个缺陷。读此书,抄代码,不禁感慨:C++11真是一种变态的存在。好多次都想说,C++居然还能这么玩?

比如下面的代码,来自书中代码清单4-30。代码的功能是通过返回类型后置,实现模板中的类型推导功能。这要是没接触过C++11的程序员看到,完全不会想到这就是C++的代码。

#include <iostream>
using namespace std;template <typename T1, typename T2>
auto Sum(const T1 &t1, const T2 &t2) ->decltype(t1 + t2) {return t1 + t2;
}
template <typename T1, typename T2 >
auto Mul(const T1 &t1, const T2 &t2) ->decltype(t1 * t2) {return t1 * t2;
}
int main(int argc, char const *argv[])
{auto a = 3;auto b = 4L;auto pi = 3.14;auto c = Mul(Sum(a,b),pi);cout << c << endl;return 0;
}

今日的C++,可以说功能强大至极,学习周期也增长了不少。难怪Rob Pike在听完了同事介绍的C++11的新特性之后,整个人都不好了。转身自己创造了“大道至简”的Go语言。(“Go语言之父谈Go:大道至简”)

最后,C++11还是要继续“深入”学习,已经入坑4年多,当继续在坑中挣扎。

而这本书,看一遍是比较推荐的,看第二遍则没有必要了。

看了一本C++11的书相关推荐

  1. 最应该看的一本人工智能理论的书-神经网络于深度学习-目录

    看重点是理论书 如果想要学习实战的请忽略 这本书是我读过的 神经网络于深度学习理论讲的最全的 先展示一下目录 可以通过以下链接购买纸质版本 https://p.pinduoduo.com/Tge9D6 ...

  2. 一本晚看了两年半的书--蓝海战略

    谨以此文献给那些正在创业或准备创业的朋友们! 最近一个月来基本上没太关注什么技术,因为有一本让我相识恨晚的书走进了我的生活.<蓝海战略> 这本从字面看不出任何意思的书,在我看完了它的序之后 ...

  3. 《书店》:一本平凡的小书

    <书店>是一本平凡的小书,它出自英国女作家佩内洛普·菲兹杰拉德之手.她60岁才开始写作,一生写了9本书,却有3本入围英国布克奖,终有一本获奖.评论界对她的评价是:"看不出惊世骇俗 ...

  4. 推荐一本网络科学入门书

    推荐一本网络科学入门书 具体见参考1. 本书是M. E. J. Newman的代表作:<Networks: An Introduction>. 书目录: Table of Contents ...

  5. 【数分书单】分析思维《一本小小的蓝色逻辑书》第一/二章小结

    <一本小小的蓝色逻辑书> by 布兰登.罗伊尔  第一章 感知和思维模式 很多人都会介意自己的记性不好,却很少有人在意自己的判断能力  -罗什富科公爵 1 选择性感知(法则一) 定义:指人 ...

  6. 读《一本小小的蓝色逻辑书》:识别常见的逻辑漏洞

    最近读了一本书叫<一本小小的蓝色逻辑书>,算是逻辑推理入门书籍,觉得不错,推荐给大家. 这本书在微信读书上可以找到,大概需要4个多小时的阅读时间. 什么是逻辑推理 在生活.学习与工作中,我 ...

  7. 推荐一本非常不错的书——李笑来的《把时间当作朋友》

    推荐一本非常不错的书--李笑来的<把时间当作朋友> 过年这几天闲着没事,把这本书看完了,不过是网络版的,好像跟正式出版的有一些出入,上班后打算买几本送给朋友看看,真的很棒. 这里提供网络版 ...

  8. 【逻辑书单】①《一本小小的蓝色逻辑书》50条核心法则梳理(10~19)

    基础性.工具性.全人类性都是逻辑学的性质,而全人类性即意味着没有阶级性,人们的国籍不同.民族不同.地位不同.语言不同,但思维的形式,即概念.判断.推理的形式是相同的.我想,接触逻辑学总让人觉得一个人的 ...

  9. 【逻辑书单】①《一本小小的蓝色逻辑书》50条核心法则梳理(42~50)

    基础性.工具性.全人类性都是逻辑学的性质,而全人类性即意味着没有阶级性,人们的国籍不同.民族不同.地位不同.语言不同,但思维的形式,即概念.判断.推理的形式是相同的.我想,接触逻辑学总让人觉得一个人的 ...

最新文章

  1. windows 切换 默认 jdk 版本
  2. 并发-9-Callable和Future
  3. 树言树语:谁动了苹果的弦
  4. 怎么样用vue ui来创建一个vue项目
  5. 出现了奇数次的数字的算法
  6. Xposed如何实现类中函数的调用
  7. 工作109:token要登录之后才有
  8. 华为宣布:免费培养2000名Java开发者
  9. 【2019华东交通校赛:H】谁在说谎(思维)
  10. docker阿里云镜像加速
  11. 当mqtt客户端向服务端发送信息出现掉包的问题
  12. 肠道微生物群与心血管疾病:机遇与挑战
  13. R语言学习笔记——向量
  14. 【蓝桥杯】历届试题 对局匹配(贪心)
  15. HAProxy的Websocket负载平衡
  16. 下面的底导航栏应该放在哪个文件里?
  17. laydate实现日期多选
  18. 关于魔兽世界战斗系统设计的一些想法
  19. 在游戏里完美还原自己的脸——《MeInGame》论文解析
  20. Java比较器-Comparable和Comparator

热门文章

  1. creator中pvr使用呢
  2. mvc ajax跳转controller 的路径
  3. Android面试中多说这么一句话,薪水直接涨5k,砥砺前行
  4. echarts树形图,分支过多,页面放不下,高度自适应方法
  5. php聊天动图,如何制作微信动态表情 真人qq聊天搞笑动态图片 多人摇头娃娃在线制作...
  6. CF 779 C Dishonest Sellers 贪心,排序
  7. 集成灶和油烟机哪个更实用?用集成灶轻松打造绝美开放式厨房
  8. 百度AI快车道“入沪”,目标检测上海专场成功举办
  9. H5移动端 利用touchstart 达到长按事件
  10. 基于Unity3D的相机功能的实现(一)——VR相机