QQ登录

只需要一步,快速开始

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

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

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

377

主题

148

听众

6001

积分

升级  20.02%

  • 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 编辑
    8 M* \- S; U! C7 y
    5 O/ f5 F+ y# J6 L5 x内容简介
    : q; l1 F  {0 [: |  O深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。3 \6 g) s8 u6 x
    深入理解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的相关资源。$ i, S+ J* [# o8 l6 a
    # r1 q* A/ D. A" a4 p+ Y
    编辑推荐4 s" j* I6 _( N- e
    深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。, p/ ~4 }! Y$ s4 G' c  y+ p; Q
    9 M& K4 E* {& ^) e" }6 L% T- N
    作者简介
    : {; l! V6 s/ N$ d作者:(加拿大)Michael Wong IBM XL编译器中国开发团队
    6 p, C$ M4 C2 R8 k5 o
    * q- y. R7 W  hMichael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。
    , P. H" M5 A/ t8 iMichael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。. E+ j& s2 @$ }/ D
    早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。
    2 I0 t9 v3 k. a6 hIBM 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新特性的开发工作。
    + H- a: q5 A( J* S! H1 q7 z2 Z+ f& _, U8 c: ]
    目录免责声明
    2 u1 N" t+ J' N! l8 K; E0 {7 g8 |: b5 w- e7 ^' I" z8 Z3 C- j
    前言
    ! O) K! n9 f: [4 d2 @第1章新标准的诞生1
    " Y; R- P8 G) R' j4 ^1.1曙光:C++11标准的诞生1
    & a( G6 k3 ~* K; i4 {0 d: |& P1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1
      ~% O: @  U! s1.1.2什么是C++11/C++0x2
    9 p! N2 J: g6 E0 \1.1.3新C++语言的设计目标3) o6 m" K7 E( b& V
    1.2今时今日的C++58 ~& J4 n! M2 D0 f9 V2 c
    1.2.1C++的江湖地位5% [/ G$ }, y3 [6 C
    1.2.2C++11语言变化的领域5
    0 ?; c* _& b) |( p: G# e1.3C++11特性的分类7
    9 R" V* |# z' F( i1.4C++特性一览11+ U5 y' i( `9 y: I
    1.4.1稳定性与兼容性之间的抉择110 q$ n: }: N* @7 r
    1.4.2更倾向于使用库而不是扩展语言来实现特性123 g$ B0 ~( d+ S; a5 n2 C+ z
    1.4.3更倾向于通用的而不是特殊的手段来实现特性13
    $ T# ~1 Q- d9 ^( }1.4.4专家新手一概支持130 K! h6 l6 e* ~, U5 a6 R7 {% {7 J
    1.4.5增强类型的安全性14# P- C- r$ D' t8 ~  x) V' r0 _
    1.4.6与硬件紧密合作14
    ; W' N5 A1 D3 K" A7 k1.4.7开发能够改变人们思维方式的特性15
    ; R/ W* D5 ~9 H4 b; z  \/ k9 b1.4.8融入编程现实16; }: R$ \  r/ C! J$ }7 R
    1.5本书的约定17
    4 F  C$ ^/ T# ?- C" [3 o1.5.1关于一些术语的翻译17+ k  ~2 {( h' G
    1.5.2关于代码中的注释17! g+ T1 `- h- W. L8 a( w0 f
    1.5.3关于本书中的代码示例与实验平台18
    : g1 y4 ]* w: K2 H1 ^& ^7 j第2章保证稳定性和兼容性19
    ' x% e! V% S% |2 o+ g) A3 Q2.1保持与C99兼容193 x9 ~& C" }4 w
    2.1.1预定义宏19! v, V' X! D: E* [
    2.1.2_func_预定义标识符20: t& `* z3 o7 |" i# O8 n
    2.1.3_Pragma操作符22
    " I3 b$ P$ {  n( F0 e6 B2.1.4变长参数的宏定义以及_VA_ARGS_22" G- @  F9 ~0 A- Y) W1 k& @# w' _
    2.1.5宽窄字符串的连接23
    4 m/ b1 p" z+ Z1 t0 f* g, A* `2.2longlong整型23
    / W3 ?/ M; |  u* b4 C7 K2.3扩展的整型25
    + s1 F( k) n) q2.4宏_cplusplus26
    , ^& c2 G' J1 l- |9 V2.5静态断言272 C1 g* X; z- o; t
    2.5.1断言:运行时与预处理时276 d4 ^9 z; m+ i
    2.5.2静态断言与static_assert28
    # o7 S( g5 m6 p2 [! h& b; L: B2.6noexcept修饰符与noexcept操作符323 |6 l. D$ h7 s6 J
    2.7快速初始化成员变量362 N% e" m1 D  \3 d/ W" N0 n0 C
    2.8非静态成员的sizeof393 e6 B; Q% q9 s# R, \9 n  j/ p/ c
    2.9扩展的friend语法40
      k3 U% ?# i4 G2.10final/override控制44
    ! V# v- D8 [  ^: N7 u7 A2.11模板函数的默认模板参数48
    ' \  t' |8 r3 `, [) Y0 U2.12外部模板50* E. @+ _, j' k% |
    2.12.1为什么需要外部模板50
    7 H# [6 s. S7 |6 y/ H2.12.2显式的实例化与外部模板的声明52) n7 ?1 n- S4 `
    2.13局部和匿名类型作模板实参54
    ) {" V5 I: m: Z+ w5 ?' \2.14本章小结554 Z+ m- U7 m, |
    第3章通用为本,专用为末57
    8 E4 l, m1 e& P! a+ I3.1继承构造函数570 h! N' m/ Q9 Y2 V# B; v1 Q4 T
    3.2委派构造函数62
    . P5 n4 l. I9 m7 B0 s) T3.3右值引用:移动语义和完美转发68
    * H2 W/ ?1 c* M3.3.1指针成员与拷贝构造681 K0 I7 D; Q; `5 G' D: v7 v: k
    3.3.2移动语义69
    : x8 A% O. _, B3 u. ]# r3.3.3左值、右值与右值引用758 g6 @* C3 q. q( a; _; O" W# c0 B* `
    3.3.4std:move:强制转化为右值80
    + m6 w9 x- g% `5 q, [/ [' F' L3.3.5移动语义的一些其他问题82& P# O! P( n* i% [3 V, e9 Y; d% D
    3.3.6完美转发851 W9 N! A" ~4 h& q) Z2 ]) r
    3.4显式转换操作符89
    , S4 {) F% z4 l: w! F, s) {7 }3 b3.5列表初始化92
    . |1 @- P- L; v5 C3.5.1初始化列表92/ f- w' w) B# U: y/ p( y
    3.5.2防止类型收窄96
      s' s% f; ~- b1 l3.6POD类型984 \) P% d4 g+ x6 k, u
    3.7非受限联合体106  D1 p% ?1 p8 H8 v$ L: }/ }
    3.8用户自定义字面量110; M: d6 T5 c) S
    3.9内联名字空间113# f; a8 s$ P8 C4 v
    3.10模板的别名118, h+ l( L1 k: _
    3.11一般化的SFINEA规则1192 Z# [2 V- W! |% G6 g1 V
    3.12本章小结121& m* ^  G) o4 B8 @) q2 [; L
    第4章新手易学,老兵易用123
    : V) d, q3 r7 J" R" m# U; o4.1右尖括号>的改进123
    ) J- a  Q$ G$ r. Q% f6 i4 H4.2auto类型推导124! `8 L( ~$ r, W# ^& A
    4.2.1静态类型、动态类型与类型推导124
    $ ?' f4 I; [* N: I  m1 p4.2.2auto的优势1264 R" P+ ~' d3 y1 d# Q. l0 r
    4.2.3auto的使用细则1300 T* Y( Y6 [4 f0 S0 C" L
    4.3decltype134
    5 q, s9 a0 O! c/ c5 H4.3.1typeid与decltype1344 V: p6 b& ^( i) i% a. ?) E
    4.3.2decltype的应用136
    ( o; `3 j, P. i7 T4.3.3decltype推导四规则140
    ) P; x! ~, o( }/ n) `0 M+ N4.3.4cv限制符的继承与冗余的符号143: K) c& v9 ~# [6 x# q6 i
    4.4追踪返回类型1456 x" U2 O8 H% M; F# z
    4.4.1追踪返回类型的引入1456 U4 x, _/ S( X" h: x  v( m
    4.4.2使用追踪返回类型的函数1461 g7 L) B" U5 b) ]
    4.5基于范围的for循环1505 |  p$ ~+ {. {0 o5 S  r
    4.6本章小结153
    : A# y3 k7 B) j! A0 H+ J第5章提高类型安全155
    . D+ c6 q+ A* R) ~5.1强类型枚举1559 u  W, b  P( P2 a
    5.1.1枚举:分门别类与数值的名字155
    6 H  K3 }) @/ B+ |4 P5 h! @5.1.2有缺陷的枚举类型156
    0 L, C& [3 q$ H& l8 E1 d5.1.3强类型枚举以及C++11对原有枚举类型的扩展160# r9 W6 V" E# f8 [- L9 H
    5.2堆内存管理:智能指针与垃圾回收163
    5 s! n+ H* u2 F6 }5.2.1显式内存管理163" D; M* `* ^! O4 e. [
    5.2.2C++11的智能指针164
    * m' p9 X$ g0 I7 N5.2.3垃圾回收的分类167
    " u1 V3 m+ T% r& K2 p- J# I. O5.2.4C++与垃圾回收169. |+ v" U/ s  h9 W
    5.2.5C++11与最小垃圾回收支持1709 X/ X: [5 n0 L6 d7 y$ E' f
    5.2.6垃圾回收的兼容性172, l# F% @* Z: `7 D
    5.3本章小结173/ `' }' k* ]0 O5 a  N( W) s
    第6章提高性能及操作硬件的能力174
    $ L$ F3 [* ~2 ]' G" e& Z4 l9 R6.1常量表达式174% k6 Z  ]$ N( Q4 s5 a1 X1 M0 F
    6.1.1运行时常量性与编译时常量性1748 R& E* u+ b5 Z( f+ m2 ?! n
    6.1.2常量表达式函数176
    ! k4 H5 C- H" j: U6.1.3常量表达式值178
    5 o, B$ U( @# z6.1.4常量表达式的其他应用180" z$ k9 Q. I: s
    6.2变长模板183
    ) v: x9 k! D( W0 H2 M6.2.1变长函数和变长的模板参数1833 }, P) g8 @4 ^, o5 C
    6.2.2变长模板:模板参数包和函数参数包185. x/ P; x3 [1 S  @
    6.2.3变长模板:进阶189; F2 j# S  x$ A+ }9 G, M+ M
    6.3原子类型与原子操作1964 t; p  E% I3 `7 q( `
    6.3.1并行编程、多线程与C++11196
    1 H4 i3 @, s$ y$ |% ]4 B6.3.2原子操作与C++11原子类型197
    + g7 a  K( P2 W6 \  q# K4 Z6 v6.3.3内存模型,顺序一致性与memory_order203
    + t! [0 E( A9 K% b' J6.4线程局部存储2148 H% f# S2 F1 E( L1 X( G  V+ s
    6.5快速退出:quick_exit与at_quick_exit216! D2 ^/ }' l* R" [% O
    6.6本章小结2198 R& H+ v( l7 d# [5 S
    第7章为改变思考方式而改变220
    + P4 j4 n7 @! J" O8 E& S, ]5 `5 d7.1指针空值—nullptr220% T/ r" C+ ~6 H/ r8 b. M" N4 I' u
    7.1.1指针空值:从0到NULL,再到nullptr220$ b: y, H0 f+ M% U) c
    7.1.2nullptr和nullptr_t223
    + o& \6 E. p4 @& w3 H7.1.3一些关于nullptr规则的讨论225
    ) i5 O0 {: O# ^/ }3 f7.2默认函数的控制2271 Q5 O' |0 \$ x$ v8 }+ N
    7.2.1类与默认函数2278 }5 X! G/ f' u0 S1 `
    7.2.2“=default”与“=deleted”230
    ) k# V6 [; i1 a+ m) v7.3lambda函数234
    3 b5 q, g2 Y& m0 c, j* t% D7.3.1lambda的一些历史234
    ; |/ D% D' m3 b1 A8 ]7.3.2C++11中的lambda函数235
    - {% B) a& f' _; L7.3.3lambda与仿函数238
    / m1 x4 n' Y5 w# R: D" X7.3.4lambda的基础使用240
    * o' G3 _3 L* W7.3.5关于lambda的一些问题及有趣的实验243
    8 U; s" L6 ]- r( J5 q1 z7.3.6lambda与STL247
    $ }+ K9 I, ?& n7 x7.3.7更多的一些关于lambda的讨论254
    ! R7 Q  R+ w1 a/ e8 T7.4本章小结256
    ' ?+ k* h/ x7 [- v2 L! R0 B. ~' K0 R9 [第8章融入实际应用258
    0 ^8 M* |$ |7 [5 R8.1对齐支持258
    / i% E; o# O, q1 J0 S8.1.1数据对齐258) t' j% e6 R  C2 C
    8.1.2C++11的alignof和alignas261
    0 w7 q5 V& b) U4 r6 ^8.2通用属性267# l, j8 `# T, a/ I7 r" o
    8.2.1语言扩展到通用属性267
    5 H& ~6 q9 ^7 I) O2 H. x6 x, W8.2.2C++11的通用属性268
    0 f) Z& d( T$ I8.2.3预定义的通用属性270& _/ q: X' ^, e8 O2 e" o3 m0 W
    8.3Unicode支持274
    2 i7 i& s9 [# G! m+ @8.3.1字符集、编码和Unicode274* ^& p+ b% k! a2 i
    8.3.2C++11中的Unicode支持276* V' `0 G" r8 Z; Z
    8.3.3关于Unicode的库支持280/ X& q. _8 o( }; v& {6 R
    8.4原生字符串字面量284
    4 x8 k" n+ q" [0 f  d3 @0 b8.5本章小结2865 `' s: K6 [( e$ G6 u# s8 H/ e
    附录AC++11对其他标准的不兼容项目287
    4 U7 G& D. u+ G附录B弃用的特性294- t( ^4 N$ j$ o1 t& o- T4 h6 f* U
    附录C编译器支持3011 n8 h4 u: ^6 X9 p, W4 z
    附录D相关资源304
    + i9 W: e/ U( e. ]% C- ?4 h- H
    - C( T3 t0 |' y4 n! x
    0 T) |& a3 W! c. m$ ]/ V
    封面
    $ T& ]( O6 R, Z) P 1.jpg 4 d- V1 G% T, l# W  ?8 V
    6 S" A" ^5 ]! i, Z; }' ^; q0 o
    截图
    ( Z& h+ s7 m) }7 ]7 _ 2.jpg ' S1 X; X1 P: P! q8 g1 b  A1 y' r
    游客,如果您要查看本帖隐藏内容请回复
    ; c! Z% J; K' D/ ~" \* g
    7 i! V- z- O7 U, L, h7 `3 V
    7 q" N1 j5 l, n& p
    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-7-19 15:40 , Processed in 1.568132 second(s), 108 queries .

    回顶部