QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4964|回复: 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 编辑
    , S2 }# k# L0 ]
    - D& P2 P8 u+ H内容简介
    8 [3 V4 Y' e/ W; c深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。
    8 Y3 M6 k/ X: s( B+ h% r深入理解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的相关资源。
    ; v: a, [4 A, J5 A. T/ a
    . O% `6 ^" P0 T( ^4 |编辑推荐
    & U8 y( w! g* D8 n4 c0 H$ Z% M, C深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。! b: a1 ]4 L# L
    & H$ C5 i5 M4 X: v' _
    作者简介5 s( F! @* n1 l
    作者:(加拿大)Michael Wong IBM XL编译器中国开发团队2 K! _7 P1 x% ^

    5 u) J7 f$ j6 l+ c- bMichael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。
    ( O: v% Z( F- ]4 \8 RMichael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。3 w5 T* i& q- ~7 Z2 Q  B5 A8 H
    早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。
    . ?3 c; d% x7 L1 U# NIBM 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新特性的开发工作。/ m! c" [/ X. I" Y$ P
    4 E  j* C: Y; `( n* y
    目录免责声明
    5 [" l8 z1 e1 j/ G
    1 D1 h, D3 \/ }; d0 f前言
    7 E) d& s2 m  N# g第1章新标准的诞生1
    + j, R+ j! \+ X' f& u7 c" |9 Z1.1曙光:C++11标准的诞生1
    # w! Y0 [% [& D0 {7 R; M1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1
    3 `/ V/ d% p' L; |3 ]+ q8 k+ q& |1.1.2什么是C++11/C++0x2/ }, n& i: D7 L3 j0 \4 z
    1.1.3新C++语言的设计目标3
    : Z1 y8 N! q  Z5 A; `4 l! S% m1.2今时今日的C++58 S; L7 ~* d/ I
    1.2.1C++的江湖地位55 f8 q  H- B. S5 ?+ J
    1.2.2C++11语言变化的领域5, Z6 P9 J" l" s1 C; u& O1 j' i) b
    1.3C++11特性的分类7
    1 s; P9 }8 K- s1.4C++特性一览110 \  `5 [* j0 T; ~
    1.4.1稳定性与兼容性之间的抉择11
    - G! Y  V& ?' S1.4.2更倾向于使用库而不是扩展语言来实现特性12' L9 w1 t  h/ [7 S4 J& u2 R
    1.4.3更倾向于通用的而不是特殊的手段来实现特性13# h8 I: p- ]3 J2 r/ j$ d# |
    1.4.4专家新手一概支持13
    # M+ s5 i% r2 g) j/ B1.4.5增强类型的安全性141 F! J2 y+ O' H' i- R
    1.4.6与硬件紧密合作14
    / d& _+ }2 }# w( r: s  n8 H. J6 [1.4.7开发能够改变人们思维方式的特性15
    7 ]9 k+ {& }& u1.4.8融入编程现实166 E4 @# V; A0 a" t& H% a2 ~1 `' s8 G
    1.5本书的约定17
    5 a' r7 g8 R2 v  w3 x1 S  W+ Y1.5.1关于一些术语的翻译17# R: L+ ]0 R$ r# l% t" k# Y" `
    1.5.2关于代码中的注释179 ^8 |& ~& {4 ^- R7 X3 \
    1.5.3关于本书中的代码示例与实验平台18
    ( P4 k4 F* e& B* I- y第2章保证稳定性和兼容性19
    - |! h& }5 a3 y% c; k2.1保持与C99兼容19
    ( j; e* w* }& ?* @  d2.1.1预定义宏196 L9 @9 W$ ~0 A! M
    2.1.2_func_预定义标识符20- w( M& I0 B9 D8 h8 C
    2.1.3_Pragma操作符22
    1 o5 D3 R9 g2 i$ {5 k2.1.4变长参数的宏定义以及_VA_ARGS_22: r  S' T6 b' i, B
    2.1.5宽窄字符串的连接23& m# b3 `$ e4 p8 F  q" {. m
    2.2longlong整型23$ A0 L* ^6 n3 l
    2.3扩展的整型25
    # n; Y$ `) \3 `1 _2.4宏_cplusplus26- ]4 ^0 ]) Z. |( M) H0 L
    2.5静态断言27
    ( K0 I: X; @1 F1 C5 k# x, w4 i2.5.1断言:运行时与预处理时27) q3 }4 h; A, j  D. P' Z: u$ `, t
    2.5.2静态断言与static_assert28
    % {5 t. G; B* J7 r0 s; v2.6noexcept修饰符与noexcept操作符32- N  g7 `9 O- V: v9 v
    2.7快速初始化成员变量36
    % m$ J2 [4 q3 Q2.8非静态成员的sizeof39" S7 N% q3 `: b: [, i
    2.9扩展的friend语法404 g3 ]. w$ I% t/ o* o
    2.10final/override控制44+ h) e. v- M! r& l+ S& ^/ ?
    2.11模板函数的默认模板参数48' c# i8 [0 R  F3 w4 A& v2 B
    2.12外部模板509 `! x) R9 |' @! |7 [
    2.12.1为什么需要外部模板50
    7 g. k, }$ |( s$ E2.12.2显式的实例化与外部模板的声明52  S3 e3 j. ]& h" C/ F
    2.13局部和匿名类型作模板实参54
    2 ]# v" N3 ?* N+ _7 \2 W2.14本章小结55
    - ~+ X5 i+ t3 w+ N! d  B第3章通用为本,专用为末57# k: o; G4 i6 m4 P0 x- {4 k  L3 ]
    3.1继承构造函数57& t+ Y$ B9 H) \# \, Y$ k2 v
    3.2委派构造函数62; k; J6 M2 E  B, F4 M, U
    3.3右值引用:移动语义和完美转发68
    3 E2 c! ~8 F, u* M+ p' U* p4 i9 [. c* w3.3.1指针成员与拷贝构造68
    7 I) y$ p' O* v3.3.2移动语义69. K, g2 f/ S3 a: N" |
    3.3.3左值、右值与右值引用75
    6 u. }8 u  k% \6 V% D3.3.4std:move:强制转化为右值80
    # j4 \3 r9 ]& `$ g3.3.5移动语义的一些其他问题82: c6 [2 c/ P7 _1 B) V
    3.3.6完美转发85
    + U5 I& L* K, k4 ]% [3.4显式转换操作符89
    3 V, x1 s3 _3 g3.5列表初始化92
    ) w: p7 _6 V; n% e* z; G' N# \" v3.5.1初始化列表92# a9 v* Y3 o0 E# ^2 Q. z$ ]) K2 W: s
    3.5.2防止类型收窄96
    ! }2 `9 K3 G! M3 M% \( C* @3.6POD类型98+ K( @; T) P7 ]( p3 R$ n$ U
    3.7非受限联合体106
    0 `( ~' h9 p" s0 k1 t3 J3.8用户自定义字面量110
    - Q9 [; P2 x! v3 `  X. `. S% K3.9内联名字空间113
    ' G( w+ L% a% P7 ^6 X. R' U3.10模板的别名118
    ) X" j+ M1 D* L; m3.11一般化的SFINEA规则119: q+ C* m( o6 z  P/ |
    3.12本章小结121" U8 `# }1 V0 A. C2 x: H# h
    第4章新手易学,老兵易用123
    ) r( ~0 m- @  g4.1右尖括号>的改进123
    ) T& h- |$ ]' N: d' z4.2auto类型推导124! V4 ~6 L. x- J7 j: k
    4.2.1静态类型、动态类型与类型推导124+ A0 ]# D7 C/ B6 P/ w- Q) t9 |! R- Z
    4.2.2auto的优势126
    1 c% o* T% \- w9 L, j2 ~, p9 J4.2.3auto的使用细则130* _$ W( y1 y! H  k4 U
    4.3decltype134, F, q9 Q- O$ C% r  N: R9 e, v$ s# |
    4.3.1typeid与decltype134
    ' w! t3 T1 s8 @4.3.2decltype的应用136# N8 i& b, ~. E! i
    4.3.3decltype推导四规则140
    % \; }1 p$ g# a( S+ ~4.3.4cv限制符的继承与冗余的符号143! q' k, Y  T+ ?4 D2 ]' A9 H
    4.4追踪返回类型1453 y1 w6 [; H+ z+ q- u
    4.4.1追踪返回类型的引入145
    4 N+ _3 H2 r  |  L5 @- x4.4.2使用追踪返回类型的函数146
    6 _  @6 R6 t- p4.5基于范围的for循环150# x; d+ Z3 R: K: {
    4.6本章小结153
    2 R1 X5 G8 Y& ?$ O: M; k第5章提高类型安全155
    + f) {/ d7 C$ q5 O, J7 x# Q1 M3 [5.1强类型枚举155
    ' S- G0 u0 P( }8 ^" _; k5.1.1枚举:分门别类与数值的名字155- z9 A& e. T4 }+ z4 b
    5.1.2有缺陷的枚举类型156
    6 c) V) d+ W- p. |; k5.1.3强类型枚举以及C++11对原有枚举类型的扩展1604 \" p" O' }" p) ~5 l: B
    5.2堆内存管理:智能指针与垃圾回收163
    6 x4 r  e  W3 T" k0 }7 f/ W* l5.2.1显式内存管理1639 o6 {! x) X) L- A8 \2 H( {
    5.2.2C++11的智能指针164
    ; g; ^3 l" ^8 X* w# i3 q* g) p5.2.3垃圾回收的分类167* n* O; f% x: q8 i! V' c1 i% X
    5.2.4C++与垃圾回收169, u% v! f# [" h2 V  N
    5.2.5C++11与最小垃圾回收支持170* v: Z+ r* d8 d& {( i& Y
    5.2.6垃圾回收的兼容性172
    / o( ^4 q2 j7 t, |5 d5.3本章小结173
    ' _: ~3 a3 e& L( V2 g/ X8 i第6章提高性能及操作硬件的能力174
    9 @1 G+ ], }$ V; q: G# ]; Z* X% D6.1常量表达式174
    # d7 z$ T1 U& g9 Q+ g1 K6.1.1运行时常量性与编译时常量性174
    ! T( s! F) p- d! X% V1 V6.1.2常量表达式函数176: {" n# d' }  e, a; k
    6.1.3常量表达式值178" R# R7 {4 s8 N" f, I5 X: _/ o& d! C
    6.1.4常量表达式的其他应用180
    * P, G7 p4 V& i7 Z% A6 E# c$ b6.2变长模板183
    / \* q7 A2 e2 V$ S- O, \% I6.2.1变长函数和变长的模板参数183
    8 q- n1 {! Y2 ?- L: H6.2.2变长模板:模板参数包和函数参数包185! R+ a/ C! b3 P) ~' a
    6.2.3变长模板:进阶189
    3 H; \; J1 o9 f6 V3 @6.3原子类型与原子操作196
    & f4 S3 o; Z2 q: b" J6.3.1并行编程、多线程与C++111961 J' [3 q8 `5 B  P7 @% z/ B
    6.3.2原子操作与C++11原子类型197
    ( w6 b. ^/ e2 n6 w6.3.3内存模型,顺序一致性与memory_order203
    $ g0 `) k9 `/ X8 G6.4线程局部存储214- K" q0 O4 `+ V( ^: {/ g$ p
    6.5快速退出:quick_exit与at_quick_exit216
      |. r+ F0 {  T& f* U; h7 ?6.6本章小结219
    * e% e9 q, A* L2 U第7章为改变思考方式而改变220) `0 U* j8 y( ~3 l: b1 x% Q7 H
    7.1指针空值—nullptr220' i' z0 ?! }0 H, |: D
    7.1.1指针空值:从0到NULL,再到nullptr220
      M. ?2 c% O8 n/ z' [# M- [7.1.2nullptr和nullptr_t223
    ' ]: a+ j% u/ q# v. L5 w7.1.3一些关于nullptr规则的讨论2254 j& o  H+ J' m0 m
    7.2默认函数的控制227
    / }$ S1 s/ ?( d0 Y. m! \4 [& [" R) Y! h7.2.1类与默认函数227
    1 }0 `& r7 i/ B6 x+ ?4 N! u7.2.2“=default”与“=deleted”230
      k/ E# }2 w1 G4 r4 s7 O4 `' Z" i+ D7.3lambda函数234
    8 I  j# J& S1 @6 d/ m, a* W7.3.1lambda的一些历史234  Q5 F& ~& O0 Z9 s
    7.3.2C++11中的lambda函数235. n+ p* M# j0 E4 _4 M& z; O
    7.3.3lambda与仿函数238
    ' u. D/ z; I9 {: f9 m  \: l1 O7.3.4lambda的基础使用240
    9 b- V/ r* N7 N0 N+ o7.3.5关于lambda的一些问题及有趣的实验243
    1 G) _4 b$ x9 L  N( t4 U7.3.6lambda与STL2479 q5 H3 F6 s' s$ N0 ^3 Z3 s
    7.3.7更多的一些关于lambda的讨论254& |) d3 t- q: c4 s; ^- R- M+ s
    7.4本章小结2566 Q% M6 V& _+ ]2 b$ G- d
    第8章融入实际应用258
    ( L6 Z# e) t/ p9 |- w' y8.1对齐支持258
    & y; n! f5 l7 Q/ T1 ^8.1.1数据对齐258
    - E, U2 J9 G/ O1 g6 A8.1.2C++11的alignof和alignas261. j+ ~8 u- b/ ^) s
    8.2通用属性267
    7 f+ ]2 C& A- N* X! T( i; X8.2.1语言扩展到通用属性267
    3 X6 x/ Z3 |1 s) H9 R1 b. H4 T8.2.2C++11的通用属性2683 n( ?) o& I& M- a. n9 u
    8.2.3预定义的通用属性270
    " m! e9 }( Z/ _: Z( S  g8.3Unicode支持274" s: @) E8 M1 T. |" f( A  A
    8.3.1字符集、编码和Unicode274
    # R  }3 Y: c* f( f+ l+ F+ d: [8.3.2C++11中的Unicode支持2766 p2 H! e, O6 O6 ]
    8.3.3关于Unicode的库支持280) k# g; {$ j; a( m/ [1 p
    8.4原生字符串字面量284
    ' j( s7 s3 y' h& [; R: d4 k8.5本章小结2869 e2 C# M' k) _6 |# V* T
    附录AC++11对其他标准的不兼容项目287/ d: Y4 h7 E) ^! D. W& t2 F5 \
    附录B弃用的特性2947 E( k. q  R& N# C2 p7 |
    附录C编译器支持301
    ( K. j6 d# V! D! c$ j- u附录D相关资源304( s3 t2 {/ q7 U
    5 M& S; c. A1 _" o4 R) u

    # S) G  ]& r- L" N  |封面9 @# X8 b9 Z3 y: N+ d) c3 A
    1.jpg 3 Z5 i, Y! i9 y
    4 e% Z6 U, r$ [6 X4 Y
    截图4 R+ k, C! j; ~0 j2 H9 p
    2.jpg ( \# u' Z- W+ m6 b! ^* j9 n( O  i
    游客,如果您要查看本帖隐藏内容请回复

    ! I/ N7 {! |3 K
    2 @4 I( {9 x- V: Z8 y- ]9 G
    . J8 }3 [3 t# j  g
    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-15 19:13 , Processed in 0.762072 second(s), 107 queries .

    回顶部