QQ登录

只需要一步,快速开始

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

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

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

377

主题

148

听众

5990

积分

升级  19.8%

  • 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 编辑
    ! C. W) F8 c. k& z! {3 d5 ]2 c8 t0 h9 V9 V7 _: d; ^- H
    内容简介
    * N1 l9 |( X/ F  {; E$ P深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。( Y4 f  t& s9 ^8 {* 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的相关资源。) @$ K" T  ]$ U8 U$ S; r& h
    5 }# Q% Q" }5 ]+ c2 @* a% d5 f7 p
    编辑推荐
    6 v6 R  E1 y1 Q- P1 m深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。
    : T) @. c7 m% G1 F* p. H8 r- r7 ^. a* |+ ]5 @
    作者简介- ]7 n" l% F9 X. r. u7 }5 n
    作者:(加拿大)Michael Wong IBM XL编译器中国开发团队$ c9 V' |3 ~% Q& Y1 G: Z" N, L- N9 _9 ]
    ; z% Z. Q) R  p
    Michael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。2 o' U; j& G! X) _
    Michael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。; H3 Z/ ?$ e( C' E/ Z. I# m
    早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。
    . w$ q" H* U3 @  ]8 i1 N) g4 TIBM 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新特性的开发工作。" R- f& L  Z5 T; {" p5 w

    7 ^8 f9 T* t% q2 C4 q4 s目录免责声明# }  }4 r; u% i0 E. V8 @+ `

    1 n( @+ Q  S' w: n1 ?- R前言/ K5 B( q. \' V% L. n. q
    第1章新标准的诞生16 P0 |, e- I  k! @
    1.1曙光:C++11标准的诞生1
    7 m/ l$ j- B9 ~6 `1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1- x. `+ D: C( B  x9 C6 D; _
    1.1.2什么是C++11/C++0x2& k0 K8 U3 A2 r( T% F- a* O
    1.1.3新C++语言的设计目标3
    - P( M! h, B" P, ^. y/ v9 a( }1.2今时今日的C++58 [% f8 @" ?" {% U9 t
    1.2.1C++的江湖地位5
    $ h3 W1 R, V" ~! B1.2.2C++11语言变化的领域5# E+ G7 E; S: M8 V
    1.3C++11特性的分类7! H8 E( A9 Z4 X0 Z! v
    1.4C++特性一览11) e0 ]" A$ ^+ k5 T) C1 L. E
    1.4.1稳定性与兼容性之间的抉择11
    5 c$ q' m  c. \% M' I4 r1.4.2更倾向于使用库而不是扩展语言来实现特性12
    0 g0 |* A5 X! l2 }' C1.4.3更倾向于通用的而不是特殊的手段来实现特性130 P6 v6 Z' k" N, B, n7 u
    1.4.4专家新手一概支持13
    3 z  _$ T4 c* n3 O8 ?5 {; x+ l) d1.4.5增强类型的安全性14* U9 a/ E3 ]0 L- _
    1.4.6与硬件紧密合作14
    7 W; E$ G# q: D/ n& P( H5 a1.4.7开发能够改变人们思维方式的特性159 W5 T1 W4 K; N$ D; f* w  y
    1.4.8融入编程现实164 v: r) J5 }5 Y! x
    1.5本书的约定17) z) O" i) |* h# P' e. N
    1.5.1关于一些术语的翻译17
    + i" t: b2 f/ W' N: K. u: L1.5.2关于代码中的注释17
    9 L# b  v8 s1 ?5 Y: k) a' p4 n1.5.3关于本书中的代码示例与实验平台18% R, y/ E9 O$ P
    第2章保证稳定性和兼容性19: |$ W7 n8 ?/ ?7 Y# t! l4 d, p4 U
    2.1保持与C99兼容19) w1 d! `  C* ]6 d. Z- i9 i
    2.1.1预定义宏19
    # Z2 f; D' o( A: @) P3 a* [2.1.2_func_预定义标识符20
    3 ^- B" ?: a' G0 J7 a$ ?4 r$ f2.1.3_Pragma操作符22
    % @: y0 ^6 d# ^/ Q! d2.1.4变长参数的宏定义以及_VA_ARGS_22
    + K$ @" {7 M; U/ G9 ]9 _; T2.1.5宽窄字符串的连接23
    9 M$ ^' [5 [' F: x8 X2.2longlong整型23. k9 u, w$ c/ W; C4 \, R
    2.3扩展的整型25
    9 R- ]7 `. T, Y  n' ]/ c' y+ Y2.4宏_cplusplus26
    , v$ i& T5 u" A& K7 J' \$ x2.5静态断言27+ ~6 _1 o' c0 s+ }" T4 H
    2.5.1断言:运行时与预处理时27- _! b) F' q3 \; T) z
    2.5.2静态断言与static_assert286 D% q, P5 R, A4 M
    2.6noexcept修饰符与noexcept操作符32
    0 g0 q. b* U( F) B  W2.7快速初始化成员变量36& _1 e# }( O/ [* K) F0 |; w: N) H
    2.8非静态成员的sizeof391 ]# D# S( t; ?& a1 B4 l+ n: M0 _
    2.9扩展的friend语法40
    9 d6 N3 d7 ^( S8 n# w1 u2.10final/override控制44
    ! h0 t" ]/ r* Y, {+ r, k' F2.11模板函数的默认模板参数48% f! d$ W: B3 J4 B, Z
    2.12外部模板50
    8 W8 u: m0 y( [0 s2.12.1为什么需要外部模板501 f. S- H8 o& A) m/ [
    2.12.2显式的实例化与外部模板的声明52
    , T/ `8 F( w/ s2.13局部和匿名类型作模板实参544 P% e( [8 e9 \. l( y
    2.14本章小结555 x2 s* m3 c  B! V# J
    第3章通用为本,专用为末57
      M' l5 @, X* z/ T3.1继承构造函数57. h: j! Z- G' ]: j2 o. g! L1 G; ]
    3.2委派构造函数625 e* a# C$ V. f) f0 J% Q: Z. h* [6 g$ J, `& X
    3.3右值引用:移动语义和完美转发68' }- Y. G# r. `
    3.3.1指针成员与拷贝构造685 i8 H4 @0 v! K! N- N3 i$ K
    3.3.2移动语义69
    # X. P' I3 J( T, \) s3.3.3左值、右值与右值引用75
    1 w. n- g) b* i  y, P% m3.3.4std:move:强制转化为右值80
    1 C/ {. `$ P0 n' Z4 p3.3.5移动语义的一些其他问题824 `& i1 m: y+ Y1 x' L6 x6 W
    3.3.6完美转发85
    1 s% v0 t( K5 g' {" d& a1 ?3.4显式转换操作符890 o; t; H6 b3 ^
    3.5列表初始化92
    : ~) a$ M' D$ E  @4 v" X5 t3.5.1初始化列表923 B2 q1 g6 D4 `' }3 [" K$ `) i9 v
    3.5.2防止类型收窄96% T% m9 ~0 Q) U5 m4 G1 Z4 K
    3.6POD类型98
    4 ?8 K+ \! }4 j* e9 J/ e  ~3.7非受限联合体106* x2 f2 R! F: ~0 U0 m
    3.8用户自定义字面量1107 P( Q: ^- S, }9 w9 }; ?
    3.9内联名字空间113
    * k% O1 I, a: ^3 s3.10模板的别名118
    # b2 u# N9 a+ U# h1 s1 Y& A3.11一般化的SFINEA规则119
    5 R, {! }6 E: r  w$ l3.12本章小结121
    7 i! a* J. g5 C# @第4章新手易学,老兵易用1233 R1 L' V; v' s/ g. Z
    4.1右尖括号>的改进123) u# Q% h5 V) N; r+ G
    4.2auto类型推导1248 q5 d  B7 ^4 k; J# Z8 ~0 c
    4.2.1静态类型、动态类型与类型推导124( E; t3 X* f$ K+ {* H
    4.2.2auto的优势126
    $ e. D; V2 X2 y: Y4 h1 j6 k1 \6 J4.2.3auto的使用细则130
    ! `' ~, k& `' t9 w" D( e6 x4.3decltype1348 ~. u8 k6 }2 O/ z
    4.3.1typeid与decltype1347 v0 q& }( t$ q+ \) H
    4.3.2decltype的应用136) ]. n' w, N; e' {8 |! ?& G0 K* H
    4.3.3decltype推导四规则140) {& B. C! P* O5 @( Z
    4.3.4cv限制符的继承与冗余的符号143
    - V6 y7 S. T( v, {* J0 j7 L, j4.4追踪返回类型145
    $ @- D( a- a; y4.4.1追踪返回类型的引入145. r) a1 }' p( h% U& w! _& Y
    4.4.2使用追踪返回类型的函数146
    9 {  O5 @( W8 J; n5 M5 O" u. G# ^4.5基于范围的for循环150
    : J$ T' a' ~9 e+ L4.6本章小结1533 Q9 w  e  c4 s$ R8 l) K" {+ ~
    第5章提高类型安全155
    7 k5 J7 O0 K3 @6 O2 P. m- Q+ ]5.1强类型枚举155+ f) W; E9 V8 k
    5.1.1枚举:分门别类与数值的名字155
    7 L9 t. r6 w( w1 E5 }8 C! s1 r5.1.2有缺陷的枚举类型156
    5 ?1 i+ X' {& V3 c/ O5.1.3强类型枚举以及C++11对原有枚举类型的扩展160: Q! e$ s$ ~  q. l* ~& }) \) F# _
    5.2堆内存管理:智能指针与垃圾回收1630 H% B, N8 E; Y! A4 \9 H
    5.2.1显式内存管理163) q1 T1 O2 R0 a7 S+ a1 p) s
    5.2.2C++11的智能指针164
    2 j, }$ C3 e4 \3 p5 k5.2.3垃圾回收的分类167; J; s4 F& B, L' m* s
    5.2.4C++与垃圾回收169
    5 E0 X: S  T6 z% [* X( B8 @) F5.2.5C++11与最小垃圾回收支持170
      W) g2 J+ {1 r6 a" B' I5.2.6垃圾回收的兼容性172
    ' D9 i7 p# m" R5 P4 x5.3本章小结173
    8 s  A: z8 C: l, V$ x第6章提高性能及操作硬件的能力1746 L% C3 h) y1 L
    6.1常量表达式174
    4 c6 s/ {; f7 r" f9 S6.1.1运行时常量性与编译时常量性174
    8 o, \7 ?* Q2 P6.1.2常量表达式函数176
      J( Z! h* O# S, f$ K  p$ A6.1.3常量表达式值178
    ( h' J! I7 u( r) |6.1.4常量表达式的其他应用180
    % ?1 d$ a+ a" ^8 U" C# {: G' A6.2变长模板183
    6 _' h+ p& Q+ b% ?6.2.1变长函数和变长的模板参数1839 q0 \% f/ Q+ m4 g+ v1 {& u
    6.2.2变长模板:模板参数包和函数参数包185
    4 @9 E2 z( X* P3 U+ I6.2.3变长模板:进阶1890 @  J( e+ q. w# d+ P6 K% r
    6.3原子类型与原子操作196
    . e- `  J- Y$ p' D( e) U9 M; X6.3.1并行编程、多线程与C++11196
    - G5 \( a, o: \& _$ N' _7 V* T! e6.3.2原子操作与C++11原子类型197; ]" K' e6 @  f; L7 h; e
    6.3.3内存模型,顺序一致性与memory_order203' f7 t/ F0 V( Y: f  T4 w
    6.4线程局部存储2147 {6 Q/ G: A3 j0 s9 G( {
    6.5快速退出:quick_exit与at_quick_exit216
    + r, |9 V7 b/ E- r' z  p6 l2 U5 A6.6本章小结219* Y4 L; X* r2 a: j. Q. u
    第7章为改变思考方式而改变220! D8 R4 c  L  H7 ^
    7.1指针空值—nullptr220
    ) S# {% u3 w+ o' f- }4 n7.1.1指针空值:从0到NULL,再到nullptr220
    ( a* a6 U6 s0 Q9 j6 U. Q7.1.2nullptr和nullptr_t2238 x, b, J  P# f. L( ?  J8 [% s
    7.1.3一些关于nullptr规则的讨论225
    # T" o/ b: r8 H: ~$ O8 d7.2默认函数的控制227
    4 b8 F9 ?1 S+ i1 g6 O0 |7.2.1类与默认函数227- b3 r: j' z* Y! X
    7.2.2“=default”与“=deleted”230# u( z, i0 `$ e, k
    7.3lambda函数234! e! n( V4 G( U6 a8 i+ N3 M+ m
    7.3.1lambda的一些历史234
    , o2 t4 f5 J1 F$ B- M( G' p4 B2 z7.3.2C++11中的lambda函数235! q/ |" g7 S8 v7 r# ^  Y% }1 h
    7.3.3lambda与仿函数238. Y2 |5 X" y1 w" ]) V
    7.3.4lambda的基础使用2407 O' I7 i, p; a, K
    7.3.5关于lambda的一些问题及有趣的实验243* S3 I& B3 O7 B' a& w' z) a4 g% m
    7.3.6lambda与STL247" h7 H1 j9 v0 p- l: i2 |. }% N8 x7 p% F
    7.3.7更多的一些关于lambda的讨论254+ ~# w8 R/ g- Q3 w* V) O0 p, _3 f
    7.4本章小结2564 R/ W, w4 S5 I( u
    第8章融入实际应用258
    , i$ n0 t, P6 ~! _9 E- d3 m0 |5 \/ v8.1对齐支持2588 T9 t4 X) _  {1 G8 A- i5 K
    8.1.1数据对齐2586 ^' A0 p5 B6 ?; G2 k6 l) U$ J
    8.1.2C++11的alignof和alignas261& z( F; ?1 R& K* f5 \9 k/ ]; y
    8.2通用属性2678 }; T5 V/ ~; \: }3 q, T, w
    8.2.1语言扩展到通用属性2677 Q9 \9 n; F; L/ x
    8.2.2C++11的通用属性268' C( K9 H8 P! _# n& V
    8.2.3预定义的通用属性2706 ]6 G. ~; L' a9 G& {; d
    8.3Unicode支持274( Z8 v9 ?% Z3 B1 I8 N6 C
    8.3.1字符集、编码和Unicode274  P. `% |; V, V! |: R1 B# D( m
    8.3.2C++11中的Unicode支持2765 B9 g3 \" N$ ]9 S; t1 l7 b
    8.3.3关于Unicode的库支持280/ O4 `( Z; ]0 w3 f+ U
    8.4原生字符串字面量284; R9 j* U+ r8 |% a* X7 Q
    8.5本章小结2869 k* A: F& I  u3 I0 h
    附录AC++11对其他标准的不兼容项目287
    & o3 _0 c4 p: d附录B弃用的特性294% e6 E0 w  v8 w1 R
    附录C编译器支持301- }. q- o4 N& W/ f0 a# ]
    附录D相关资源3041 a, J+ Z8 Q" ?0 J/ r- |4 S

    : [2 b2 |5 O' g; j% K
    0 N; r$ q$ j) F0 z封面
    9 p( `0 x5 a; H' F" H 1.jpg ; y- u3 l1 L( j7 Y( z
    , ?- b& V: U( B4 G2 p6 n
    截图
    7 G( Q" H6 m3 q  | 2.jpg 4 d1 Z  G. S: L+ k7 E
    游客,如果您要查看本帖隐藏内容请回复

    / d/ {" P' ]$ }0 a" @0 d8 P# @
    2 W: \3 A" w! C
    & ~4 w' K5 c7 O9 Z9 ?
    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-6-3 13:16 , Processed in 0.607381 second(s), 108 queries .

    回顶部