QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5122|回复: 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 编辑
    4 y1 d; N! V9 z: W1 H7 b5 q0 B( |* ^* ?( V; H9 C& }0 [0 T
    内容简介! c" P9 \4 m2 N5 y
    深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。+ K. g( Z/ w- B( E/ d! \- T, 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的相关资源。
    . i4 n9 n, g( U, }" F; j6 a- W% |6 @6 b5 T4 [
    编辑推荐
    ' z" Y  x' ]8 i1 v深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。
    $ x0 o- m' u) I" g
    * F7 a2 J' j" E5 s" k0 ?2 ?0 H+ O9 b. I作者简介
    ! R& L7 {5 P8 B' L作者:(加拿大)Michael Wong IBM XL编译器中国开发团队& l: w' r: }2 b: i  X( _' a

    / p) t8 h/ F2 I- s9 @+ c5 PMichael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。
      R! U4 @, W. Z& Y' o* K+ u) SMichael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。
    * @# c8 a' \. O" r* v$ k早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。
    ) w. S) O0 a! R$ T, w/ i8 |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新特性的开发工作。
    3 U; N  q. y/ }# W: I- f9 J+ X  Z& }' o: W( b/ `' Z( q
    目录免责声明" @# {' X" j9 k& O4 b" T

    5 K: |4 L! I1 V7 E: v1 }前言
    ! \& t. |. j* Z7 Z7 m第1章新标准的诞生1) Z1 a( L# \7 X: e
    1.1曙光:C++11标准的诞生14 K' O* b+ Y' i5 t% h* B9 J3 F: r
    1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1  X7 r' r; g% H
    1.1.2什么是C++11/C++0x20 `. q6 A  x0 P1 ]
    1.1.3新C++语言的设计目标3
    # J5 i6 D) Q: J2 P" O3 W1.2今时今日的C++5
    , L0 B0 y0 b) t5 ]! D. c1.2.1C++的江湖地位5: S( h: {7 Z" O6 [5 r
    1.2.2C++11语言变化的领域5
    ( Y! L9 p" e& |. F1.3C++11特性的分类7
    : x8 ?- ]& T4 b+ D( E5 U  g0 j. U1.4C++特性一览11" N; ^: N- f' e6 \  l4 L- p
    1.4.1稳定性与兼容性之间的抉择11
    ( P0 X9 R: b, d/ p' o1.4.2更倾向于使用库而不是扩展语言来实现特性12
    % ?! N$ c& `2 T1.4.3更倾向于通用的而不是特殊的手段来实现特性13
    * g8 }) `* r5 e; s. z1.4.4专家新手一概支持13( M, G. g0 {3 x1 u0 S  U) k" m
    1.4.5增强类型的安全性14
    - X! _7 y1 y7 J/ r1.4.6与硬件紧密合作14
    8 h% E) i/ x, }) C2 R1.4.7开发能够改变人们思维方式的特性15
    ' z- A' \7 n: d1.4.8融入编程现实162 {+ \; `- s& B+ ~8 Q/ P
    1.5本书的约定17
    1 R$ P- Q4 n3 \; u* {: v1.5.1关于一些术语的翻译17
    . L1 {% h8 O4 Z1 `* r1.5.2关于代码中的注释17
      v# F5 b0 [: v! ?. i' X" ?1.5.3关于本书中的代码示例与实验平台18& T1 H! w( k7 f9 N  P+ ?: ]2 E+ i
    第2章保证稳定性和兼容性19- X& X/ L8 o; g) {& ~
    2.1保持与C99兼容19
    ) C+ N. ~& n5 h, n; n2.1.1预定义宏19  z) b. \! e2 w( b
    2.1.2_func_预定义标识符20
    8 U% h1 S* t1 P2.1.3_Pragma操作符22
    8 V+ ]% M0 S6 v9 v; |( F* k5 M2.1.4变长参数的宏定义以及_VA_ARGS_22, j; y# L% E% k% C/ Y
    2.1.5宽窄字符串的连接23  ^1 Z( r& B" e# T# Q8 d/ T4 S
    2.2longlong整型23
    & f6 D, Z' q4 {  ~( r8 S2.3扩展的整型25
    . B1 K, C! n( b' J) A* P/ {2.4宏_cplusplus26
    * m& j9 k' Y8 M6 [- W2.5静态断言27
    2 G" M) O+ T$ h& m5 r2.5.1断言:运行时与预处理时27' v4 }$ b( I/ T! @. m: @; ~2 I$ g: b
    2.5.2静态断言与static_assert28
    0 |7 z, L5 o+ e$ h  k# X2.6noexcept修饰符与noexcept操作符321 A) W- ?1 a, g/ O/ N7 g- Y
    2.7快速初始化成员变量36
    1 @6 N: w) s8 ~- `2.8非静态成员的sizeof39) X7 I9 Z; Z, a. g3 o/ O6 X
    2.9扩展的friend语法40" ^) C/ W; y3 j- @
    2.10final/override控制44
    6 [0 k$ ~- z! ]) j' d2 {2.11模板函数的默认模板参数48+ c% Y7 C0 U. l$ l
    2.12外部模板50
    - h9 N, [) [5 Z& {( b2.12.1为什么需要外部模板503 z* L* X  |$ i  n8 @5 z5 p+ i3 i
    2.12.2显式的实例化与外部模板的声明52: Y! c* d% j  ?, C# o- k
    2.13局部和匿名类型作模板实参543 O+ V3 P: P5 N% |2 ^
    2.14本章小结55
    $ w, F9 i( U' c4 q第3章通用为本,专用为末57
    # L& \) E. b2 j8 N, P3.1继承构造函数57
    * `, ~  {+ o' ]3.2委派构造函数625 z& V1 l% S/ j8 Q/ |
    3.3右值引用:移动语义和完美转发68+ K  J  P) E9 H1 {1 L9 v
    3.3.1指针成员与拷贝构造68
    8 I1 C, q, r4 y1 f4 O3 d3.3.2移动语义69
    1 t$ {" H* X5 j3 I- V0 \9 `5 O3.3.3左值、右值与右值引用758 s# ]) h8 n; K* J: f, }
    3.3.4std:move:强制转化为右值80' }. C% e8 w6 e
    3.3.5移动语义的一些其他问题82
    3 J/ c5 x0 q4 \/ ^8 i! z3.3.6完美转发85
      o$ ~, \8 T" t  B3 g3.4显式转换操作符89
    ; Y! o" k3 n3 T/ E* H3.5列表初始化92$ f3 o# q5 y$ n' d, I& p
    3.5.1初始化列表92
    & F9 _; J' M- F0 L% f3.5.2防止类型收窄96& [; }9 j( X# a/ }
    3.6POD类型98& T$ b! |4 T: y. f# r
    3.7非受限联合体1064 u4 c4 i' D" e8 J7 E, O
    3.8用户自定义字面量1108 O. f2 q6 K  B% p+ [* K" z/ c
    3.9内联名字空间113
    . T# Y4 G$ J' z3.10模板的别名118
    ! j; x: J+ e6 }5 a  J2 w0 h5 \9 B3.11一般化的SFINEA规则119
    . R% k3 ~; B+ }, i! P3.12本章小结121
    / w% k, g' z; B5 j9 j" D* q第4章新手易学,老兵易用123
    0 s2 h/ l0 W/ F4.1右尖括号>的改进123
    6 ^: R7 I9 U9 E4.2auto类型推导124% @* t# [( ]% L  g+ z) R
    4.2.1静态类型、动态类型与类型推导1243 \; N+ I7 X/ d) p
    4.2.2auto的优势126
    ' y7 p0 A) r0 G: b2 a4.2.3auto的使用细则130! ^& D! a# Q* n, c4 C" u& `
    4.3decltype1348 E: ~0 \4 B* t0 m9 k2 k9 ^
    4.3.1typeid与decltype1345 `) v9 N0 G$ u# `7 e- v! f2 _
    4.3.2decltype的应用136
    ) x; W! P, J# T0 k" }0 ]4.3.3decltype推导四规则1403 V. c3 R" x6 x2 J8 b; P7 a
    4.3.4cv限制符的继承与冗余的符号143( f1 a; e+ ~* y+ U: s
    4.4追踪返回类型1458 i' |' z! L# c- f
    4.4.1追踪返回类型的引入145$ [$ R! f6 ?; E6 `
    4.4.2使用追踪返回类型的函数146$ l) l# q, z3 k9 n* J# |7 J$ b
    4.5基于范围的for循环150
    , h/ m. L: S+ s9 J( i- K* ?4.6本章小结153" }4 t6 ~) u- H2 V9 u' I
    第5章提高类型安全155  g% `9 D' S: R; j( G7 s
    5.1强类型枚举155
    " Z3 w5 I9 O7 i7 x( L5.1.1枚举:分门别类与数值的名字155
    * ], ]8 Z( w3 X3 `% S& T' `! `3 K5.1.2有缺陷的枚举类型1566 a" s& C* \6 T/ t! |  y2 ~
    5.1.3强类型枚举以及C++11对原有枚举类型的扩展160
    + P6 x; C/ D# K& L. d8 l5.2堆内存管理:智能指针与垃圾回收163$ G( s! D3 ^1 I
    5.2.1显式内存管理163$ z& N4 @. q6 O! M4 }
    5.2.2C++11的智能指针1641 Z5 Q8 i1 Z# |& h2 \, x8 w
    5.2.3垃圾回收的分类1673 q* z; E5 D' m0 m8 W; h$ J
    5.2.4C++与垃圾回收1690 A8 w( D! z+ q5 a
    5.2.5C++11与最小垃圾回收支持170) }  E& j4 h' T' o  a  U
    5.2.6垃圾回收的兼容性1728 z: t( y) @6 @( w: Z" P7 o
    5.3本章小结173+ P; D4 j+ P3 p+ c
    第6章提高性能及操作硬件的能力174
    / X/ T: U2 s9 X2 q1 U6.1常量表达式174
    4 c/ W# C2 E" H+ w# n9 N2 o6.1.1运行时常量性与编译时常量性174. y7 w, s/ t1 }" p& n1 Z* v
    6.1.2常量表达式函数176
    / z$ f- [7 p6 C4 R: O6.1.3常量表达式值178
    2 R! R8 ], m, P, R: T2 ?) w0 b6.1.4常量表达式的其他应用180: N8 w9 _. [4 H) N7 M9 D
    6.2变长模板183
    ' b+ O, |0 b% I) s8 _9 c6.2.1变长函数和变长的模板参数183
    ! A  ^, T  D' v6 v1 [3 f6.2.2变长模板:模板参数包和函数参数包185) q: B/ u' ~, C7 Y3 D2 W
    6.2.3变长模板:进阶189
    ! A- q0 I$ P: W( m, R) S4 R1 W) u6.3原子类型与原子操作1961 I" Z. L+ |8 c2 n1 Y1 I
    6.3.1并行编程、多线程与C++11196& N% ?1 G4 b9 S8 m) m( t
    6.3.2原子操作与C++11原子类型197
    ! L3 g7 P( d9 y/ ~& [# e; W3 n" q6.3.3内存模型,顺序一致性与memory_order2036 P& |% o6 q+ o
    6.4线程局部存储2148 [. `' f/ Z, i4 W' ^, n
    6.5快速退出:quick_exit与at_quick_exit216
    4 @" |6 ]2 y) U- Q+ D/ p2 N6.6本章小结219
    6 v( x; C  Z) {# D" x+ [) x# K1 D第7章为改变思考方式而改变220
    9 J' f" d9 P+ q( n7.1指针空值—nullptr220
    * l. J% n. r6 l0 F4 [7 Q/ o7.1.1指针空值:从0到NULL,再到nullptr220
    1 S2 T( o/ m' t8 V/ G7.1.2nullptr和nullptr_t223
    # c( Y9 b- K8 W, s# {" m7.1.3一些关于nullptr规则的讨论225
    0 Z* y: b# ?, w$ t- K6 b; v7.2默认函数的控制2272 L8 x; a  v" r0 d$ [/ x
    7.2.1类与默认函数227
    . ?' l( `. z) I/ B/ d$ L7.2.2“=default”与“=deleted”2302 u! a2 w+ A. J; {0 k9 M
    7.3lambda函数234( B; U8 R8 C9 w+ g7 n
    7.3.1lambda的一些历史234- u& X4 q% t+ o3 ?6 z
    7.3.2C++11中的lambda函数2352 l3 w3 c1 Q% W' e5 {1 K* F) G; }% r" M
    7.3.3lambda与仿函数2381 x+ }3 A8 F2 S- V: D8 a2 M4 B
    7.3.4lambda的基础使用240% L1 T6 y! p% N6 _7 I# a8 e
    7.3.5关于lambda的一些问题及有趣的实验243
    ( w; G1 h" `1 [4 K5 h  _' V7.3.6lambda与STL247
    6 _4 P, U- |* M% k5 Z6 P5 C7.3.7更多的一些关于lambda的讨论2547 A- _/ z8 i" f" X: U/ Z1 l
    7.4本章小结256( Z6 s- M) n; _9 J# I3 \3 y
    第8章融入实际应用258$ a& I9 l; y: S) o8 @
    8.1对齐支持258
    ) M; x1 N3 _* M. d4 |% o8.1.1数据对齐258
    # n3 G* O: Q, C, O! p8.1.2C++11的alignof和alignas261
    8 |! r; F. s7 J9 l8.2通用属性267
    , h8 A9 O0 H9 U, q8.2.1语言扩展到通用属性267
    ( u5 x/ ?' n- \3 c4 S' P8.2.2C++11的通用属性268
    5 X0 y  G! Z/ Y7 L2 @' H0 i/ ?8.2.3预定义的通用属性270
    ! L$ u: C! R: p* L- X9 w8.3Unicode支持2741 S8 c' W2 K( t0 l0 {
    8.3.1字符集、编码和Unicode274" g! {% l+ Q5 ^! H1 F
    8.3.2C++11中的Unicode支持276
    8 q7 C) x# L5 W( p8.3.3关于Unicode的库支持280# a8 [2 g5 S2 O- y( f: a. K
    8.4原生字符串字面量284
      t  p3 p' t+ z8.5本章小结286
    9 W9 H" m: M9 J- u! Y, r2 |) o0 h附录AC++11对其他标准的不兼容项目2874 A! c) s* f- p7 a9 l- i
    附录B弃用的特性294
    ! H2 X4 h) {4 x2 u0 k3 X附录C编译器支持301
      P( s- w4 \2 D! `& X) O( I% K  `附录D相关资源3041 C* l- R+ e/ z; G: F/ }
    4 h' _7 z7 \: ?* D& x/ c

    9 y8 d  l+ S' P/ h封面
    1 R5 {" G$ I& h3 o) R2 r 1.jpg " ?3 Z# x$ Y# h0 q

    1 g& I& K$ q% y& g" b% w' E/ c截图
    8 ^- U0 C3 C" c; h 2.jpg # D1 s6 J7 e4 z& M. t( t" C" d0 i4 x
    游客,如果您要查看本帖隐藏内容请回复

    ( _/ r% M, L% |  Q" P4 Z/ K
    % V" [5 n" c4 ^' s8 R
    ) s; v7 Q# O: M+ n3 `; [
    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-20 00:56 , Processed in 0.388108 second(s), 108 queries .

    回顶部