c++学习书籍推荐《深入理解C++11 C++11新特性解析与应用》下载
百度云及其他网盘下载地址:点我
编辑推荐
《深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。
作者简介
作者:(加拿大)Michael Wong IBM XL编译器中国开发团队
Michael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。
Michael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。
早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。
IBM XL编译器中国开发团队,IBM拥有悠久的编译器开发历史(始于上世纪80年代),在全球有将近400名高素质工程师组成的研发团队,其中包括许多世界知名的研究学者和技术专家。IBM一直以来都是编程语言的制定者和倡导者之一,并将长期在编译领域进行研发和投资。IBM编译器中国开发团队于2010年在上海成立,现拥有编译器前端开发人员(C/C++)、后端开发人员、测试人员,以及性能分析人员共16人。团队与IBM北美编译器团队紧密合作,共同开发、测试和发布基于POWER系统的AIX及Linux平台下的XL C/C++和XL Fortran系列产品,并对其提供技术支持。虽然团队成立时间不长,但已于2012年成功发布最新版本的XL C/C++ for Linux V12.1 & XL Fortran for Linux V14.1,并获得7项发明专利。团队成员拥有较丰富的编译器开发经验,对编译技术、编程语言、性能优化和并行计算等各领域都有一定的研究,也对C++11标准的各种新特性有较早的研究和理解,并正在实际地参与C++11新特性的开发工作。
目录
免责声明
序
前言
第1章新标准的诞生1
1.1曙光:C++11标准的诞生1
1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1
1.1.2什么是C++11/C++0x2
1.1.3新C++语言的设计目标3
1.2今时今日的C++5
1.2.1C++的江湖地位5
1.2.2C++11语言变化的领域5
1.3C++11特性的分类7
1.4C++特性一览11
1.4.1稳定性与兼容性之间的抉择11
1.4.2更倾向于使用库而不是扩展语言来实现特性12
1.4.3更倾向于通用的而不是特殊的手段来实现特性13
1.4.4专家新手一概支持13
1.4.5增强类型的安全性14
1.4.6与硬件紧密合作14
1.4.7开发能够改变人们思维方式的特性15
1.4.8融入编程现实16
1.5本书的约定17
1.5.1关于一些术语的翻译17
1.5.2关于代码中的注释17
1.5.3关于本书中的代码示例与实验平台18
第2章保证稳定性和兼容性19
2.1保持与C99兼容19
2.1.1预定义宏19
2.1.2_func_预定义标识符20
2.1.3_Pragma操作符22
2.1.4变长参数的宏定义以及_VA_ARGS_22
2.1.5宽窄字符串的连接23
2.2longlong整型23
2.3扩展的整型25
2.4宏_cplusplus26
2.5静态断言27
2.5.1断言:运行时与预处理时27
2.5.2静态断言与static_assert28
2.6noexcept修饰符与noexcept操作符32
2.7快速初始化成员变量36
2.8非静态成员的sizeof39
2.9扩展的friend语法40
2.10final/override控制44
2.11模板函数的默认模板参数48
2.12外部模板50
2.12.1为什么需要外部模板50
2.12.2显式的实例化与外部模板的声明52
2.13局部和匿名类型作模板实参54
2.14本章小结55
第3章通用为本,专用为末57
3.1继承构造函数57
3.2委派构造函数62
3.3右值引用:移动语义和完美转发68
3.3.1指针成员与拷贝构造68
3.3.2移动语义69
3.3.3左值、右值与右值引用75
3.3.4std:move:强制转化为右值80
3.3.5移动语义的一些其他问题82
3.3.6完美转发85
3.4显式转换操作符89
3.5列表初始化92
3.5.1初始化列表92
3.5.2防止类型收窄96
3.6POD类型98
3.7非受限联合体106
3.8用户自定义字面量110
3.9内联名字空间113
3.10模板的别名118
3.11一般化的SFINEA规则119
3.12本章小结121
第4章新手易学,老兵易用123
4.1右尖括号>的改进123
4.2auto类型推导124
4.2.1静态类型、动态类型与类型推导124
4.2.2auto的优势126
4.2.3auto的使用细则130
4.3decltype134
4.3.1typeid与decltype134
4.3.2decltype的应用136
4.3.3decltype推导四规则140
4.3.4cv限制符的继承与冗余的符号143
4.4追踪返回类型145
4.4.1追踪返回类型的引入145
4.4.2使用追踪返回类型的函数146
4.5基于范围的for循环150
4.6本章小结153
第5章提高类型安全155
5.1强类型枚举155
5.1.1枚举:分门别类与数值的名字155
5.1.2有缺陷的枚举类型156
5.1.3强类型枚举以及C++11对原有枚举类型的扩展160
5.2堆内存管理:智能指针与垃圾回收163
5.2.1显式内存管理163
5.2.2C++11的智能指针164
5.2.3垃圾回收的分类167
5.2.4C++与垃圾回收169
5.2.5C++11与最小垃圾回收支持170
5.2.6垃圾回收的兼容性172
5.3本章小结173
第6章提高性能及操作硬件的能力174
6.1常量表达式174
6.1.1运行时常量性与编译时常量性174
6.1.2常量表达式函数176
6.1.3常量表达式值178
6.1.4常量表达式的其他应用180
6.2变长模板183
6.2.1变长函数和变长的模板参数183
6.2.2变长模板:模板参数包和函数参数包185
6.2.3变长模板:进阶189
6.3原子类型与原子操作196
6.3.1并行编程、多线程与C++11196
6.3.2原子操作与C++11原子类型197
6.3.3内存模型,顺序一致性与memory_order203
6.4线程局部存储214
6.5快速退出:quick_exit与at_quick_exit216
6.6本章小结219
第7章为改变思考方式而改变220
7.1指针空值—nullptr220
7.1.1指针空值:从0到NULL,再到nullptr220
7.1.2nullptr和nullptr_t223
7.1.3一些关于nullptr规则的讨论225
7.2默认函数的控制227
7.2.1类与默认函数227
7.2.2“=default”与“=deleted”230
7.3lambda函数234
7.3.1lambda的一些历史234
7.3.2C++11中的lambda函数235
7.3.3lambda与仿函数238
7.3.4lambda的基础使用240
7.3.5关于lambda的一些问题及有趣的实验243
7.3.6lambda与STL247
7.3.7更多的一些关于lambda的讨论254
7.4本章小结256
第8章融入实际应用258
8.1对齐支持258
8.1.1数据对齐258
8.1.2C++11的alignof和alignas261
8.2通用属性267
8.2.1语言扩展到通用属性267
8.2.2C++11的通用属性268
8.2.3预定义的通用属性270
8.3Unicode支持274
8.3.1字符集、编码和Unicode274
8.3.2C++11中的Unicode支持276
8.3.3关于Unicode的库支持280
8.4原生字符串字面量284
8.5本章小结286
附录AC++11对其他标准的不兼容项目287
附录B弃用的特性294
附录C编译器支持301
附录D相关资源304
百度云及其他网盘下载地址:点我
c++学习书籍推荐《深入理解C++11 C++11新特性解析与应用》下载的更多相关文章
- C语言学习书籍推荐《C Primer Plus(中文版)(第5版)》下载
普拉塔 (Prata S.) (作者), 云巅工作室 (译者) <C Primer Plus(中文版)(第5版)>共17章,介绍了C语言的基础知识,包括数据类型.格式化输入输出.运算符.表 ...
- java虚拟机的学习书籍推荐
javaEE开发已然是一个老生常谈的话题了,但经典之所以会成为经典,就是因为有可重复琢磨之处,每一次的反复推敲都会有不一样的收获.如果你不满足于做一个只会写if…else…的Java程序员,而是希望更 ...
- C++学习书籍推荐《Accelerated C++中文版》下载
百度云及其他网盘下载地址:点我 媒体推荐 书评 这是一本一流的C++入门书,它采用了一种和实践相结合的方式来解决具体的问题.相比我所见过的其他C++入门书来说,本书以令人惊奇的紧凑格式覆盖了更多的关于 ...
- C语言学习书籍推荐《C陷阱与缺陷》下载
下载地址:点我 凯尼格 (作者), 高巍 (译者) <C和C++经典著作:C陷阱与缺陷>适合有一定经验的C程序员阅读学习,即便你是C编程高手,<C和C++经典著作:C陷阱与缺陷> ...
- C语言学习书籍推荐《C和指针 Pointers On C》下载
<C和指针 POINTERS ON C>提供与C语言编程相关的全面资源和深入讨论.本书通过对指针的基础知识和高 级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去. 全书共18 ...
- java学习书籍推荐
1. Java 语言基础 谈到Java 语言基础学习的书籍,大家肯定会推荐Bruce Eckel 的<Thinking in Java >.它是一本写的相当深刻的技术书籍,Java 语言基 ...
- linux学习书籍推荐linux学习书籍推荐
引用地址:http://www.cnblogs.com/notepi/archive/2013/06/15/3137103.html Linux 学习书目推荐 Linux基础 1.<Linux与 ...
- 19年最新 Python0基础学习书籍推荐(内涵PDF地址以及书籍源码)
去年看过一篇文章,是关于18年的最适合0基础学习的书籍,今年,最新的书籍也已经统计出来.书籍的PDF太过于难找,所以很多PDF都找不到. 仅仅只能找到英文版PDF 本文章统计了18.19并做过对比,在 ...
- c++学习书籍推荐《C++沉思录》下载
百度云及其他网盘下载地址:点我 编辑推荐 经典C++图书,应广大读者的强烈要求再版 目录 第0章 序幕第一篇 动机第1章 为什么我用C++第2章 为什么用C++工作第3章 生活在现实世界中 第二篇 类 ...
- c++学习书籍推荐《C++编程思想第一卷》下载
百度云及其他网盘下载地址:点我 编辑推荐 <C++编程思想>(第1卷)(第2版)第1版荣获"软件开发"杂志评选的1996年度 图书震撼大奖,中文版自2000年推出以来, ...
随机推荐
- Android Camera2拍照(一)——使用SurfaceView
原文:Android Camera2拍照(一)--使用SurfaceView Camera2 API简介 Android 从5.0(21)开始,引入了新的Camera API Camera2,原来的a ...
- delphi中WebBrowser的parent改变时变成空白问题的解决(覆盖CreateWnd和DestroyWnd)
这段时间在做一个delphi界面打开网页的功能,且此网页所在窗口可完整显示,可缩小到另一个窗口的panel上显示 可是在改变网页所在窗口时,WebBrowser控件变成了空白 上网google了半天, ...
- Win8Metro(C#)数字图像处理--2.9图像均值滤波
原文:Win8Metro(C#)数字图像处理--2.9图像均值滤波 [函数名称] 图像均值滤波函数MeanFilterProcess(WriteableBitmap src) [函数代码] ...
- Android 命令设置获取、IP地址、网关、dns
设置ip root@android:/ # ifconfig eth0 192.168.0.173 netmask 255.255.255.0 ifconfig eth0 192.168.0.173 ...
- git pull和fetch的区别
详解git pull和git fetch的区别: - weixin_41975655的博客 - CSDN博客 https://blog.csdn.net/weixin_41975655/article ...
- 基于VUE实现的新闻后台管理系统-二
基础环境及最后的开发效果已完成说明,接下来就开始配置. ¶npm初始化 新建项目文件夹VueDemo,在其内执行如下脚本 npm init -y 安装vue-cli构建包 yarn add vue-c ...
- UWP 发送短信公用倒计时按钮
1.要求: 发送验证码按钮,点击后,会倒计时60s,之后才能再次点击.不同界面的多个验证码按钮共享这个倒计时时间. 2.操作步骤 1) 从登录界面-->忘记密码输入手机号- ...
- Tomcat请求过程
Tomcat请求过程 1.用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得. 2.Connector把该请求交给它所在的Servic ...
- WebBrowser中获得脚本中的变量值
//项目中添加Micrsoft.mshtml引用 --c:/temp/temp.htm-- <html> <script language="JavaScript" ...
- Qt给应用程序添加版本信息(对rc文件的设置,可利用QT内置变量)
作者:daodaoliang 时间:2016年7月11日16:12:09 版本:V 0.0.4 邮箱:daodaoliang@yeah.net 0. 环境说明 系统环境: win10 64位 Qt环境 ...