QQ登录

只需要一步,快速开始

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

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

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

377

主题

148

听众

5980

积分

升级  19.6%

  • 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 编辑 / X7 D$ R( D) n( C

    7 X' i6 i! i( ]内容简介
    ; O  R6 l9 e% W4 B3 d# S7 b- A深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。# P# f5 x  W, P# P
    深入理解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的相关资源。7 C2 n5 _4 k, c
    * [. ]- V! P' v' C- M
    编辑推荐
    4 Y4 s3 A1 l9 f: d0 m$ M* S- N% L6 I( [深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。; Y9 F- ~9 q/ Z# ~2 I1 L
    2 M; ~( p  N1 |  S1 F
    作者简介
    9 F8 {$ E) E, [+ L作者:(加拿大)Michael Wong IBM XL编译器中国开发团队7 _5 n3 ^: F2 S* @) j. p' v
    + [, R, L# x( T7 L7 ~3 m
    Michael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。
    6 L' k3 ^9 r  u: }5 O( E) aMichael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。
    ) Y. q1 }' c8 E* r0 e; `: l早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。
    / \$ K+ c# ]4 E! t1 Y- xIBM 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新特性的开发工作。
    : U, H3 d+ D0 L# g+ [/ j4 X( H; l6 A% L6 `
    目录免责声明0 t; M  q: c9 i' v) _4 J9 M! ?
    ' H( p7 a5 M( h. V
    前言" v3 J; c+ _. o1 m( ], D
    第1章新标准的诞生1  x- T7 ?- |) S- e
    1.1曙光:C++11标准的诞生1+ Z9 F3 Z: _2 n4 S
    1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1
    0 U8 K7 f- ~1 {$ v, {8 r/ n1.1.2什么是C++11/C++0x2) A0 d( K: [) y3 E% s; o8 K
    1.1.3新C++语言的设计目标3
    # ?; R! J: v& E$ G; z1.2今时今日的C++51 O* Z. D0 k, L; t$ q
    1.2.1C++的江湖地位5
    ' e& C8 y. _9 @  \6 B) }1.2.2C++11语言变化的领域5* b9 S& g8 G) ^2 U, z  f
    1.3C++11特性的分类7
    % k& g' x$ C" P, ^% @1 U* w1.4C++特性一览11
    2 P$ k2 m- T+ i6 C' k% u1.4.1稳定性与兼容性之间的抉择11
    + z7 C  |! [* e! g* G6 m1.4.2更倾向于使用库而不是扩展语言来实现特性127 x! z* _+ A7 g4 Z: @0 P
    1.4.3更倾向于通用的而不是特殊的手段来实现特性13" d7 {7 V, R2 S0 U3 g8 Y2 E# p& J) a
    1.4.4专家新手一概支持135 l+ y0 r: P! P' T# \- u3 d  s6 t, w2 d  B
    1.4.5增强类型的安全性14
    & ?2 |; o6 ^% \0 E1.4.6与硬件紧密合作149 r& D5 m8 D% ]. W' K5 q1 h& |2 P! W! }
    1.4.7开发能够改变人们思维方式的特性15
    ! ~# @* {/ d2 |& \6 o/ H3 v  v* I1.4.8融入编程现实165 I  N! ^6 P0 W" ]/ a* _" J
    1.5本书的约定17
    6 S) F9 M9 J+ U& h1.5.1关于一些术语的翻译17
    0 ?0 c- G* r( K1.5.2关于代码中的注释17
    # W6 P$ @) T, |' R# \4 C- J8 F1.5.3关于本书中的代码示例与实验平台18+ J. B  \8 {. d1 o7 Z/ V
    第2章保证稳定性和兼容性190 J  r, N5 R% C* e2 @9 {3 m
    2.1保持与C99兼容19
    ; G! O2 r. h, [. ]; i, D. o; w: k2.1.1预定义宏197 a$ c6 j2 w" l4 n7 ?; X
    2.1.2_func_预定义标识符204 `( p/ w1 Q: c9 P
    2.1.3_Pragma操作符22# y# f8 m. o- {% {0 F
    2.1.4变长参数的宏定义以及_VA_ARGS_22, c+ W4 i* }( t; x/ [7 O7 M+ w+ l
    2.1.5宽窄字符串的连接23
    1 U+ u; R) D- b. y; R( v, n, _2.2longlong整型234 @1 V, X- u( @* q( Q4 T! g
    2.3扩展的整型25
      x4 u7 p; A. U% @# {2.4宏_cplusplus26
    & {- _6 e* H4 h$ ]' I  p( |2.5静态断言27
    / k( Q1 |5 Z/ K9 A# A6 {" I2.5.1断言:运行时与预处理时27
    / o- _& z# j6 C9 g2.5.2静态断言与static_assert28$ }5 r$ W) D* G0 E4 T
    2.6noexcept修饰符与noexcept操作符32
    + P( w' k, T5 ?3 a2 i) }( m" m/ @2.7快速初始化成员变量36- w: M9 E9 S8 F* F" B) \7 q
    2.8非静态成员的sizeof39. N2 s$ C7 Y' s' c
    2.9扩展的friend语法40* G: A' F2 r/ x9 D
    2.10final/override控制44
    ( P0 y8 T1 ^/ A( ^7 `5 D) F  v2.11模板函数的默认模板参数48( ^! X' y, @; i. j
    2.12外部模板501 `& T" A9 u+ e& B9 A
    2.12.1为什么需要外部模板50
    % r  x" K* E* y* A2.12.2显式的实例化与外部模板的声明523 Z5 h9 X* P  M9 j5 \8 J
    2.13局部和匿名类型作模板实参54
    " k# C( i. |# R& \8 f2.14本章小结55
    * e% ^' Q/ ~2 o9 {3 I# ^1 `9 H: `第3章通用为本,专用为末57+ t2 ^4 V7 p' l: t' P. Q7 v
    3.1继承构造函数57' s& @! A- t, z8 O) R% k
    3.2委派构造函数622 ~9 q; j; v' \
    3.3右值引用:移动语义和完美转发68
    2 p8 e( x: `) Q+ E8 O* Q4 ^3.3.1指针成员与拷贝构造68
    ( ^- I1 {- k1 E6 O3.3.2移动语义696 N7 C( w5 C/ R; [# l3 f
    3.3.3左值、右值与右值引用750 J& N2 _! ~0 i2 A' Z1 T8 H5 d
    3.3.4std:move:强制转化为右值80- c) {6 W& T; A  u2 I0 [1 H
    3.3.5移动语义的一些其他问题825 u- p5 V$ \1 o/ Y( c5 \
    3.3.6完美转发85
    , Y5 I- {7 ~8 j8 i1 ~3.4显式转换操作符89
    3 L* ]" y! R) z$ k. v" Y/ ]3.5列表初始化92  m" q& \/ k7 y3 _+ ]
    3.5.1初始化列表92# P7 _- K1 r6 O3 s; F
    3.5.2防止类型收窄96
    ; `3 p1 L/ I; T$ b$ Z7 q- R: p' E3.6POD类型98
    6 L% M. f' O6 b1 }' _! I3.7非受限联合体106
      H) T+ L- B# i6 a- \0 }  D3.8用户自定义字面量110; K  p* l$ @; j0 @
    3.9内联名字空间113
    0 c6 {* c/ W0 H+ {8 I+ y3.10模板的别名118
    ( H: Z5 H* Y3 q8 B0 `. K3.11一般化的SFINEA规则119
    , i, J1 l! G* l" l4 `! U$ p+ w" Q3.12本章小结121, ^' ?8 X0 L( T! Y
    第4章新手易学,老兵易用123
    0 L- p4 h5 I, x8 ?) Y0 ?) Y4.1右尖括号>的改进123# \$ b7 K' p! Y; W9 p# M' Z/ e
    4.2auto类型推导124
    8 h4 U. s. t# \/ U+ \: s4.2.1静态类型、动态类型与类型推导124
    6 x5 _& g- V" ]- [! D1 {4.2.2auto的优势126
    ' P8 g1 j! o  N3 ?, V4.2.3auto的使用细则130
    : [: t: B9 H6 n8 D8 e3 h4 |, w1 s4.3decltype134
    5 n# P2 m+ O, H; n, D4.3.1typeid与decltype134
    " T9 U/ Z* m" g" E4.3.2decltype的应用136
    + l( Y+ A) U+ W" L9 Y8 {4.3.3decltype推导四规则140
    - O- [: h# d* t5 E/ U  d/ [4.3.4cv限制符的继承与冗余的符号143
    : u! T# p: k1 m% M& s4.4追踪返回类型145+ ?1 y1 X: _9 m, z. {' W
    4.4.1追踪返回类型的引入1455 j+ ^/ `7 G; u
    4.4.2使用追踪返回类型的函数146# H- S- O% P+ i* |! ?2 J3 Y) y
    4.5基于范围的for循环150* N$ U; |1 t0 o7 F. k% H) B
    4.6本章小结153
    7 ^, r( m- n$ A: k  i  g  D& @第5章提高类型安全155
    - m% _- |. @& e, T6 ^6 l6 O5 H5.1强类型枚举1550 e; ^; q% s- E2 C2 @! {1 k/ H/ ^
    5.1.1枚举:分门别类与数值的名字155
    * ^" V- ~1 z6 f" @0 w+ d* X5.1.2有缺陷的枚举类型156( Y9 y% \" T  w
    5.1.3强类型枚举以及C++11对原有枚举类型的扩展160
    , p0 a. I4 S  ~1 ?5.2堆内存管理:智能指针与垃圾回收1637 w( {. K& P1 D
    5.2.1显式内存管理163: F: n$ B' z1 _) E
    5.2.2C++11的智能指针164
    7 G6 C6 i4 I9 X/ o5.2.3垃圾回收的分类167. J% v( r1 _: ]
    5.2.4C++与垃圾回收1695 ^; m+ {: g6 o1 d- W* }, ]
    5.2.5C++11与最小垃圾回收支持170! x* }+ v: U* x' C
    5.2.6垃圾回收的兼容性172
    & X: e/ L1 ^# M! T8 W5.3本章小结173* Q/ ]2 n' d8 M% S, G
    第6章提高性能及操作硬件的能力174
    " X' l. B2 v/ }; n% T/ @( C7 b8 @6.1常量表达式174
    0 w8 ?! H" t' S6.1.1运行时常量性与编译时常量性174
    ; L; G& P2 P* J2 L6.1.2常量表达式函数176
    2 p& c' [) M( C- |/ h! R$ o# R; L- G) Y6.1.3常量表达式值178
    2 V1 K! _8 i1 {& K) X( b6.1.4常量表达式的其他应用1804 o( y5 U# T' `8 N. R3 J
    6.2变长模板183
      N3 `! A. e/ u! Y+ B3 |1 s3 m8 @5 M+ J6.2.1变长函数和变长的模板参数183
    7 ~) D( j/ W- y1 c3 E6.2.2变长模板:模板参数包和函数参数包185
    % s, _) O4 a" s6.2.3变长模板:进阶1899 d: H6 z7 J8 q% D$ C. Z% E6 v! U- V9 Q
    6.3原子类型与原子操作196  Z% X" {5 T, W$ c; G7 d' q
    6.3.1并行编程、多线程与C++11196
    " a: i9 I9 |: a. j1 w8 l6.3.2原子操作与C++11原子类型197
    . Z+ l1 N- {( q0 g# e- _' |) j! ?1 N6.3.3内存模型,顺序一致性与memory_order203! u$ k/ f1 Q5 W. N  Z$ v
    6.4线程局部存储2140 o0 u3 s9 H# h/ l; ^, e6 ?7 s
    6.5快速退出:quick_exit与at_quick_exit216
    2 B6 e- o5 o2 `* N6.6本章小结2192 U/ {# ~" q# ]1 g/ F! d& c/ C/ @
    第7章为改变思考方式而改变220
    2 ]3 z2 X0 p) O; D4 E0 @7.1指针空值—nullptr220
    1 ?& W7 S) O2 x! S) g' P- v- U( A7.1.1指针空值:从0到NULL,再到nullptr220
    " x) y/ L% T# U3 ?6 u0 ^7.1.2nullptr和nullptr_t223$ w6 P  Y  x) A# A+ p, W
    7.1.3一些关于nullptr规则的讨论225$ A# u& _( _3 H# y( W+ G4 N4 v" ~
    7.2默认函数的控制227% Q8 k5 u& J) q+ ^# F. q% y& P
    7.2.1类与默认函数227- Q0 n0 U; b0 w
    7.2.2“=default”与“=deleted”230
    2 G/ O# A, D& _$ k) s3 x7.3lambda函数234  F8 V' ~7 g* z3 J5 S2 V% q
    7.3.1lambda的一些历史234
    % I9 G8 A: I* g+ q0 v4 U7.3.2C++11中的lambda函数235; N5 e/ N* Z& L8 w  v" @
    7.3.3lambda与仿函数238
    ) K: T6 z7 Y  U& `7.3.4lambda的基础使用240. b. h3 u$ d6 M& j5 P
    7.3.5关于lambda的一些问题及有趣的实验243
    / m$ J/ I6 c, }9 S$ K7.3.6lambda与STL247
    5 C1 g' S$ t4 Z3 ]+ m) E7.3.7更多的一些关于lambda的讨论254  @7 a: p; O1 W1 Q, y6 J# C
    7.4本章小结2566 z) Z  }/ d5 D8 [( W3 |: h) g
    第8章融入实际应用2584 ~  a) y6 v+ r7 t4 M3 W
    8.1对齐支持258
    7 t) Q/ z2 N7 L! t$ e8.1.1数据对齐258% G( D1 Q) m+ Q0 [) A# j' s2 O
    8.1.2C++11的alignof和alignas261, {/ B8 s. `3 _. @  U
    8.2通用属性267& T4 [- q2 X+ d
    8.2.1语言扩展到通用属性267
    8 w2 ?' W6 @) N) K8.2.2C++11的通用属性268. B, ^0 h- P9 y5 X* X# w
    8.2.3预定义的通用属性270- a" |, v# O. y" }! \6 o
    8.3Unicode支持274
    4 Q; v* {' N; u8 {1 E8 P8.3.1字符集、编码和Unicode274& X4 @& W* {- f+ Z& ^
    8.3.2C++11中的Unicode支持276" b' I) ~- {: p& j" b
    8.3.3关于Unicode的库支持280
    5 b; D/ B! y1 r5 S: }8.4原生字符串字面量284
    2 ]5 ~8 }' a3 ?! M8.5本章小结286
    " U8 X& @( @3 c7 p  @# S附录AC++11对其他标准的不兼容项目287
    $ Y$ G4 ?  h! C+ D. X2 H附录B弃用的特性294
    8 D5 l2 l* x2 o2 k( ]8 ~0 c附录C编译器支持301
    # @: [0 g0 e- `1 N附录D相关资源304
    % Q0 e8 U) s3 s5 i8 ~
    / j: M9 V0 {; s3 T4 V
    5 Y* D: c7 t+ j! J- i  }+ V* N
    封面7 a" }3 m8 k! U! s( t) s
    1.jpg
    - [+ o  \4 x4 A. F6 u8 L0 K* f% T* m+ p
    截图
    ' K7 A, z0 U& L0 O- K 2.jpg # L7 c# c& t$ k* G$ ~. P: [2 N
    游客,如果您要查看本帖隐藏内容请回复
    9 g7 @1 a* F9 R$ c" d( F" s. Y
    2 B5 U: W. w0 ?; Q/ W. K' Z/ r- }
    8 Y5 e; C" P" ~; A1 E
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    叶小伦        

    2

    主题

    10

    听众

    179

    积分

  • TA的每日心情
    开心
    2014-12-7 00:20
  • 签到天数: 65 天

    [LV.6]常住居民II

    自我介绍
    数学爱好者

    社区QQ达人

    群组第六届国赛赛前冲刺培

    群组全国大学生数学建模竞

    群组数学建摸协会

    群组数模专题强化培训

    群组建模思维养成培训

    回复

    使用道具 举报

    0

    主题

    13

    听众

    284

    积分

    升级  92%

  • TA的每日心情
    开心
    2015-10-12 13:02
  • 签到天数: 77 天

    [LV.6]常住居民II

    自我介绍
    我是一个大一学生

    社区QQ达人

    回复

    使用道具 举报

    2

    主题

    7

    听众

    102

    积分

    升级  1%

  • TA的每日心情
    无聊
    2017-1-13 09:17
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    自我介绍
    将来想用MATLAB做东西

    社区QQ达人

    群组国赛讨论

    回复

    使用道具 举报

    0

    主题

    16

    听众

    666

    积分

    升级  16.5%

  • TA的每日心情
    无聊
    2018-8-4 15:30
  • 签到天数: 77 天

    [LV.6]常住居民II

    自我介绍
    爱数学

    群组数模专题强化培训

    群组2014年地区赛数学建模

    群组国赛讨论

    群组第二届数模基础实训

    回复

    使用道具 举报

    drrile        

    0

    主题

    12

    听众

    117

    积分

    升级  8.5%

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

    [LV.5]常住居民I

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

    使用道具 举报

    drrile        

    0

    主题

    12

    听众

    117

    积分

    升级  8.5%

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

    [LV.5]常住居民I

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

    使用道具 举报

    风树        

    1

    主题

    11

    听众

    151

    积分

    升级  25.5%

  • TA的每日心情

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

    [LV.5]常住居民I

    自我介绍
    yyyy

    社区QQ达人

    回复

    使用道具 举报

    7

    主题

    8

    听众

    317

    积分

    升级  5.67%

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

    [LV.7]常住居民III

    自我介绍
    想学习数学建模

    社区QQ达人

    群组数学建模培训课堂2

    群组2011年第一期数学建模

    群组数学建模培训课堂1

    回复

    使用道具 举报

    gancm 实名认证       

    8

    主题

    13

    听众

    1831

    积分

  • TA的每日心情

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

    [LV.9]以坛为家II

    国际赛参赛者

    社区QQ达人

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

    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-16 21:29 , Processed in 0.559270 second(s), 108 queries .

    回顶部