QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5171|回复: 14
打印 上一主题 下一主题

深入理解C++11:C++11新特性解析与应用

[复制链接]
字体大小: 正常 放大

377

主题

148

听众

6010

积分

升级  20.2%

  • TA的每日心情
    奋斗
    2016-7-14 13:54
  • 签到天数: 219 天

    [LV.7]常住居民III

    社区QQ达人 元老勋章 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组2015年美赛冲刺

    群组高等数学串讲

    群组2014第三期英语写作

    群组SAS数据分析大赛冲刺

    群组2015美赛优秀论文解析

    跳转到指定楼层
    1#
    发表于 2014-7-25 10:30 |只看该作者 |正序浏览
    |招呼Ta 关注Ta
    本帖最后由 数学中国—罂粟 于 2014-7-25 10:31 编辑 ! g1 Z$ e2 w- T
    ; i$ c& v! g% O( `2 S6 e6 V# C  l5 e
    内容简介
    % d$ x5 [9 M, Z. u( x深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。
    $ q3 l+ Y- M9 Q深入理解C++11:C++11新特性解析与应用》一共8章:第1章从设计思维和应用范畴两个维度对C++11新标准中的所有特性进行了分类,呈现了C++11新特性的原貌;第2章讲解了在保证与C语言和旧版C++标准充分兼容的原则下增加的一些新特性;第3章讲解了具有广泛可用性、能与其他已有的或者新增的特性结合起来使用的、具有普适性的一些新特性;第4章讲解了C++11新标准对原有一些语言特性的改进,这些特性不仅能让C++变得更强大,还能提升程序员编写代码的效率;第5章讲解了C++11在安全方面所做的改进,主要涵盖枚举类型安全和指针安全两个方面的内容;第6章讲解了为了进一步提升和挖掘C++程序性能和让C++能更好地适应各种新硬件的发展而设计的新特性,如多核、多线程、并行编程方面的新特性;第7章讲解了一些颠覆C++一贯设计思想的新特性,如lambda表达式等;第8章讲解了C++11为了解决C++编程中各种典型实际问题而做出的有效改进,如对Unicode的深入支持等。附录中则介绍了C++11标准与其他相关标准的兼容性和区别、C++11中弃用的特性、编译器对C++11的支持情况,以及学习C++11的相关资源。8 f. r0 U3 c* A1 I3 ?/ @

    # `0 v7 Q) A+ X1 g% [$ N  `编辑推荐
    5 @( U$ |4 ?5 |2 Y3 A. f深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。
    . d; d) e' m, }" }5 i
    5 l" [! y  ^* T5 s作者简介
    " G7 R# ]% g5 ?5 I4 m/ j' b/ y, j作者:(加拿大)Michael Wong IBM XL编译器中国开发团队# F  o9 l) t9 p, ?! j2 e0 N
    + v4 D. |/ j; y7 @' p, b
    Michael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。% h, r% n7 r2 S  _9 ~  J6 f8 C- j
    Michael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。
    $ c: G* r3 ~8 A1 n' w早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。+ Q2 Q4 j4 `" n+ X7 E) o4 F7 K
    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新特性的开发工作。& U5 A: U, ~* E3 F, |' `
    & X9 W2 T6 q  R5 m+ J1 F
    目录免责声明
    " h' R* u# q/ W( g/ u) r5 E2 e( W! k4 T( i# s& W5 ^6 K7 ~" v% {
    前言
    : e; H$ K5 `1 E, F, m4 R第1章新标准的诞生1. y9 m9 k8 w  C
    1.1曙光:C++11标准的诞生1' t5 F$ ~5 i: v. F9 n* C) I
    1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1
    9 }* N' @! H. s7 A% I0 A* |+ b2 j1.1.2什么是C++11/C++0x2
    ' k, O8 D4 E3 e8 [) w' N, C  L1.1.3新C++语言的设计目标3/ E9 p4 x7 e# ?* c$ B
    1.2今时今日的C++5+ g( L8 @$ x' O9 V
    1.2.1C++的江湖地位50 q0 A0 t  l5 y
    1.2.2C++11语言变化的领域54 b; h$ f8 W- c1 j: V$ W
    1.3C++11特性的分类74 N, e+ b) [, C8 N$ ?1 C- B4 R
    1.4C++特性一览11
    , t8 y+ e7 q: E. [. d0 k1.4.1稳定性与兼容性之间的抉择11
    : F- {' U8 ]# s1.4.2更倾向于使用库而不是扩展语言来实现特性12% N, y# u& s% y$ j
    1.4.3更倾向于通用的而不是特殊的手段来实现特性13
    ) d6 D9 E: B0 _* G8 z! @, R; F5 c1.4.4专家新手一概支持13, J1 Q) y8 D5 j+ l
    1.4.5增强类型的安全性14
    8 f* H4 C* o3 d/ @1.4.6与硬件紧密合作143 b  n! T1 z& i; W) |
    1.4.7开发能够改变人们思维方式的特性15
    . R$ s9 k3 o8 a1.4.8融入编程现实16# f' H6 b0 ?" i& ^7 D0 O  ~! _! n
    1.5本书的约定17
    ! r; k0 E. G- k, E& n1.5.1关于一些术语的翻译17
    & D1 |3 \3 i# |$ c, D, ]1 \1.5.2关于代码中的注释178 r7 k9 \/ ^9 c# q
    1.5.3关于本书中的代码示例与实验平台18
    ; P* B! P+ O+ E0 U, D/ r+ q第2章保证稳定性和兼容性19
    1 F, O1 S3 o! Y. k  g2.1保持与C99兼容199 N, x' g. q+ ]8 c) R! W
    2.1.1预定义宏190 E( d6 H2 Q* H
    2.1.2_func_预定义标识符207 G9 Z+ B0 f/ O' S  ^  n. |: g
    2.1.3_Pragma操作符224 R; v2 ?  s, P
    2.1.4变长参数的宏定义以及_VA_ARGS_22
    . V3 P" K1 A! K0 b& p) b2.1.5宽窄字符串的连接23
    ) C, |4 U& _; L  f7 P2.2longlong整型23
    4 ~7 {$ y/ s5 `2.3扩展的整型25
    0 w8 ?" g7 y) w0 t0 a" _2.4宏_cplusplus26
    - }; R- T! I( V& ^6 I2.5静态断言27
    & l5 D  ^/ S9 s2.5.1断言:运行时与预处理时27# ~' g/ i. I/ d( e. A: ?, x
    2.5.2静态断言与static_assert28. I& R$ M4 g8 e' X. M! }
    2.6noexcept修饰符与noexcept操作符32) b- F; D2 n( U8 |5 i% h& S
    2.7快速初始化成员变量36
    - Y( b+ c7 _, Z* g2.8非静态成员的sizeof39
    % w! V2 H2 B/ Q% j* I2.9扩展的friend语法407 n. S2 t- t" i( {
    2.10final/override控制44, Q2 P  Q% s; p. `( W* Q8 Q3 \
    2.11模板函数的默认模板参数48, W6 c2 M8 N4 f$ u# p# e
    2.12外部模板501 Y( {/ b! T; V- _$ t1 n
    2.12.1为什么需要外部模板50
    + l! d: ]  O5 W( {& ^2.12.2显式的实例化与外部模板的声明52" R3 m2 W5 A( W" b
    2.13局部和匿名类型作模板实参54* q2 R" J+ F9 ?- S7 f  G
    2.14本章小结55% Z0 ~: l# F4 \- ]5 }% ~: z3 S
    第3章通用为本,专用为末57
    6 {$ z$ l- v9 H3.1继承构造函数57
    & F, F$ E% ]: t/ F' `, |0 u3.2委派构造函数62
    / i8 z' f  n' g: f! n3.3右值引用:移动语义和完美转发68
    * x6 p, S9 p, F9 ], Q( s1 u, y3.3.1指针成员与拷贝构造68/ I4 {: u' q- n& Y
    3.3.2移动语义69
    2 @7 b4 y+ u" T2 d' P8 @2 k3.3.3左值、右值与右值引用756 `$ O9 a* U0 U3 ^1 U2 b
    3.3.4std:move:强制转化为右值80
    " G( o9 d. t  J0 E/ X( a* i3.3.5移动语义的一些其他问题82
    " w, q7 k2 P( K( Z' T3.3.6完美转发85
    - p2 S. z' @5 q6 b3.4显式转换操作符89
    * d1 i5 S. d1 }( A! h7 L3.5列表初始化92
    " z5 ~/ F1 e* e: I% q  B5 g: z- E3.5.1初始化列表92. q5 T% g$ A' h( n  j2 p' B
    3.5.2防止类型收窄96
    8 r$ i9 @' x! M# a3.6POD类型98/ ~0 e0 i! r7 L5 H" ^3 F! m
    3.7非受限联合体106
    + a# p+ |$ n# D/ A. _6 R3.8用户自定义字面量1106 v" L4 _1 n* R7 q$ m2 j3 j
    3.9内联名字空间1139 Q3 H5 K3 w/ I# @6 ]
    3.10模板的别名118
    ) f, N& u# v0 W+ ?9 d# N3.11一般化的SFINEA规则119; S0 W& K, l" r7 K" n
    3.12本章小结121
    5 p0 g8 V! X7 O, A/ |4 _1 {第4章新手易学,老兵易用1233 E: ^: H% H! d$ w" p3 u
    4.1右尖括号>的改进123
    ' X5 _; O1 M7 A9 p% O' K4.2auto类型推导124, d, i5 X: P  v2 r5 J0 u
    4.2.1静态类型、动态类型与类型推导124" |. r  u3 M; d; G- D
    4.2.2auto的优势126
    5 \! |. r3 m4 j/ A# j+ _; a4.2.3auto的使用细则1303 q% v( \! Z3 s! D* c* S! D% ^
    4.3decltype134
    8 ?( C$ v" ]7 M1 i0 A: U4.3.1typeid与decltype134
    ' Q7 W+ i+ k- @# Z4.3.2decltype的应用1364 p' K7 K  n9 E$ v
    4.3.3decltype推导四规则140% W0 e+ H) B1 @/ c+ t
    4.3.4cv限制符的继承与冗余的符号143, H, N. q+ J! y% {$ J
    4.4追踪返回类型145. O+ r. G8 `1 H2 {( d
    4.4.1追踪返回类型的引入1450 o9 x: ]# S* x  |0 y5 x
    4.4.2使用追踪返回类型的函数146
    * f8 D$ ^  y0 y: G) ~/ p# K) j4.5基于范围的for循环150- R0 b' Q1 q( m: e3 E( w
    4.6本章小结153
    - l0 S  }* N2 e) [6 l" Q第5章提高类型安全155
    4 ?/ V- w( B8 O) j% \5.1强类型枚举155
    " U2 J, ~% e, m' p7 l5.1.1枚举:分门别类与数值的名字155
    : F. c9 ^0 {& o7 x! Y5.1.2有缺陷的枚举类型156
    + }% s6 z" `. \8 k) C6 y' W( ^5.1.3强类型枚举以及C++11对原有枚举类型的扩展160
    " v' h9 h1 V1 c& r* F% F8 T1 U5.2堆内存管理:智能指针与垃圾回收163- H/ f0 f# j  v: C  Q+ }
    5.2.1显式内存管理163* M( S! N6 x. {) n# I
    5.2.2C++11的智能指针164
    8 G5 t( ]# [9 O# T9 M- M& w5.2.3垃圾回收的分类167
    . f2 J2 z9 x  ~! K5 w5.2.4C++与垃圾回收169
    2 o$ Y0 Q, Z* K1 s; H' z" q7 q5.2.5C++11与最小垃圾回收支持170
    ( ]% T3 F4 Q" _! N, A& Z& M& Z5.2.6垃圾回收的兼容性172( q1 M5 [3 u2 e  m; m, }/ ~
    5.3本章小结173
    ; r% Q# X* y- V- x+ H第6章提高性能及操作硬件的能力174
    # ^) B: G: S5 ?- S9 F6.1常量表达式174
    0 f& ]0 E0 P1 |6.1.1运行时常量性与编译时常量性174
    ( L8 U/ M' Y" m6.1.2常量表达式函数176
    0 S7 i/ c% s" ~+ U" }" ^6 {6.1.3常量表达式值178
    5 G! u" s5 a+ c! c6.1.4常量表达式的其他应用180- b4 G6 f# s* s- t: G. M
    6.2变长模板183
    ! n$ ~$ ~2 p7 L5 U6 \8 X7 \6.2.1变长函数和变长的模板参数183
    9 h- t1 t5 {% }0 V- z6.2.2变长模板:模板参数包和函数参数包185- Q, H5 Z3 n+ J/ M! I5 i5 i9 E4 }. o
    6.2.3变长模板:进阶1896 d9 O- O7 z- M5 V
    6.3原子类型与原子操作1968 s; P+ J, E: T, b& E5 J9 r
    6.3.1并行编程、多线程与C++11196
    4 K2 ]7 D' \: a& E! J# u6.3.2原子操作与C++11原子类型197& H+ ~) G. b% y$ a+ ~  P
    6.3.3内存模型,顺序一致性与memory_order2038 |1 w9 H0 J  U9 b6 k
    6.4线程局部存储214% Y6 i1 r  a+ m% ?# d4 T4 k
    6.5快速退出:quick_exit与at_quick_exit216/ E2 S: j* y  v
    6.6本章小结219
    . L2 p2 u4 l, o1 x8 M, e- v+ O第7章为改变思考方式而改变220
    6 [! D; Y2 u$ z7 {, e7.1指针空值—nullptr220
    % \$ Q) @* c7 S8 C4 h7 F7.1.1指针空值:从0到NULL,再到nullptr220+ c4 X5 }  c9 f/ w' Y" T
    7.1.2nullptr和nullptr_t223
    2 K8 A) ?5 S! w5 _+ u. V8 {7.1.3一些关于nullptr规则的讨论2257 @: |% V- A/ v, e
    7.2默认函数的控制2270 I" o: [1 R' T+ |
    7.2.1类与默认函数227+ ]3 _. i4 i, o. g* S/ R
    7.2.2“=default”与“=deleted”230
    % a- t; a. W7 j/ P/ h6 G7.3lambda函数234
    # H' j1 A1 ]3 s( Z7.3.1lambda的一些历史234* D: J4 m3 h9 k+ @( {
    7.3.2C++11中的lambda函数235
    ) v5 d; X  S- M# w% d- r7.3.3lambda与仿函数238! Q* b4 Z# q5 M
    7.3.4lambda的基础使用240- e8 u3 q4 ^6 K. q
    7.3.5关于lambda的一些问题及有趣的实验243
    " v, j' f% \# B5 Z# q8 A9 ]7.3.6lambda与STL247% i. e6 u6 s  Z% f: O$ E! A
    7.3.7更多的一些关于lambda的讨论254% Z* O. }9 d7 w
    7.4本章小结256
    - j# v$ Q- O- N. \/ O第8章融入实际应用258
    * D. l; g# r0 k" g8.1对齐支持2581 I2 e. x" f- k8 Z$ z1 J
    8.1.1数据对齐258
    - v7 ?4 L' |6 W9 `! U5 l) @8.1.2C++11的alignof和alignas261( ~) L& H7 A8 R2 b2 F: ?, X
    8.2通用属性267
    6 I! A4 y% k! b( U* S1 Y/ j7 N8.2.1语言扩展到通用属性267+ X1 s, k& L1 }; W- m) h
    8.2.2C++11的通用属性268
    . `# }" }# n! e; N, C8.2.3预定义的通用属性270
    * k8 h% t- S# e( A/ \, [8.3Unicode支持274
    4 F: r# ]* X1 |9 Q8.3.1字符集、编码和Unicode274# `5 a, S. m9 j4 c$ y( Q6 v
    8.3.2C++11中的Unicode支持276, C" f- x& U; {6 @) z9 r* r
    8.3.3关于Unicode的库支持280$ F: t( }' b& h. f' R: r9 g
    8.4原生字符串字面量284: q9 d  K: H8 ^/ ]
    8.5本章小结2860 R, D0 P* R: B$ u4 w
    附录AC++11对其他标准的不兼容项目287: q' m9 g0 Q5 J4 f
    附录B弃用的特性294% m% D2 ~9 ~  T# w$ m- P) ~- t
    附录C编译器支持301  x$ w$ _' S8 \: k) Q* x8 p
    附录D相关资源304* M: M/ U3 N6 A9 q; A4 c
    - `5 I! S. l! o$ B
    . ]1 `# d5 g, C  j* F
    封面# e- F6 d# O( I' Y9 T# @: k4 @+ N* S
    1.jpg
    . m- R8 o- M' O' @& o  p7 m9 R& ]9 g- _0 N
    截图
    6 U. _4 a5 n# J1 j+ G 2.jpg ' h. b, \4 _- l0 q% _( G- c9 C5 C8 [
    游客,如果您要查看本帖隐藏内容请回复

    . p! `/ C' x# V" o3 U
    4 ], K( p2 ]& ~! x3 {
      M7 o) Q/ u* I( z8 i6 y
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    LYJA        

    20

    主题

    3

    听众

    375

    积分

    升级  25%

  • TA的每日心情
    开心
    2017-8-27 23:29
  • 签到天数: 61 天

    [LV.6]常住居民II

    社区QQ达人

    回复

    使用道具 举报

    jiay        

    0

    主题

    11

    听众

    51

    积分

    升级  48.42%

  • TA的每日心情
    奋斗
    2015-2-8 22:05
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    自我介绍
    开朗活泼,热爱建模。

    邮箱绑定达人

    回复

    使用道具 举报

    jiangtai        

    0

    主题

    10

    听众

    112

    积分

    升级  6%

  • TA的每日心情
    无聊
    2016-2-4 12:43
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    邮箱绑定达人 社区QQ达人

    回复

    使用道具 举报

    zszzsz111        

    2

    主题

    11

    听众

    71

    积分

    升级  69.47%

  • TA的每日心情
    无聊
    2016-1-29 20:52
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    社区QQ达人

    回复

    使用道具 举报

    慢跑20 实名认证       

    60

    主题

    8

    听众

    3684

    积分

  • TA的每日心情
    开心
    2017-2-22 14:21
  • 签到天数: 271 天

    [LV.8]以坛为家I

    群组2014年美赛冲刺培训

    群组物联网工程师考试

    群组2013年电工杯B题讨论群

    群组物联网工程师培训

    群组2013电工杯A题讨论群组

    回复

    使用道具 举报

    gancm 实名认证       

    8

    主题

    13

    听众

    1831

    积分

  • TA的每日心情

    2015-5-31 00:30
  • 签到天数: 432 天

    [LV.9]以坛为家II

    国际赛参赛者

    社区QQ达人

    群组2013电工杯A题讨论群组

    回复

    使用道具 举报

    7

    主题

    8

    听众

    317

    积分

    升级  5.67%

  • TA的每日心情
    慵懒
    2016-10-11 09:39
  • 签到天数: 173 天

    [LV.7]常住居民III

    自我介绍
    想学习数学建模

    社区QQ达人

    群组数学建模培训课堂2

    群组2011年第一期数学建模

    群组数学建模培训课堂1

    回复

    使用道具 举报

    风树        

    1

    主题

    11

    听众

    151

    积分

    升级  25.5%

  • TA的每日心情

    2014-12-30 19:19
  • 签到天数: 48 天

    [LV.5]常住居民I

    自我介绍
    yyyy

    社区QQ达人

    回复

    使用道具 举报

    drrile        

    0

    主题

    12

    听众

    117

    积分

    升级  8.5%

  • TA的每日心情
    无聊
    2014-11-26 09:41
  • 签到天数: 30 天

    [LV.5]常住居民I

    自我介绍
    在学习中进步
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-9-4 20:22 , Processed in 0.515654 second(s), 111 queries .

    回顶部