QQ登录

只需要一步,快速开始

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

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

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

377

主题

148

听众

5946

积分

升级  18.92%

  • 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 编辑 1 g/ [% J9 T  P* ?& w3 q/ M+ U
    3 L1 y7 F# r: M3 g' p) s6 W
    内容简介
    ! N5 Q6 Y4 W0 |4 a深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。* x& ^2 B! v% o3 c9 B: j% A# 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的相关资源。  h' ?3 N- _& X$ [; L; M
    * W9 S/ j" N8 X/ ~% N
    编辑推荐
    2 k2 }# \. B0 e/ L" t6 [深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。
    9 @: a+ C. j7 z, ^3 R/ V" g# l
    : A& h" Q* `, V: k' T4 }$ W! O4 I作者简介
    , @' Z, i4 w% f, ?作者:(加拿大)Michael Wong IBM XL编译器中国开发团队
    % O2 T- {  M$ P* {. f- o, R1 B' q: Y
    & g" T9 ~9 X1 ZMichael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。
    4 C) |: T6 |9 s% Q0 c$ A; d/ jMichael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。
    + r1 q. G0 Y3 U8 X! u- V9 {早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。: w$ C; m& ]/ Z$ b3 g
    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新特性的开发工作。: s7 y) ^* ^9 u) x& F
    1 [  d3 F1 g2 A+ X
    目录免责声明# m8 Z) E# M' z( l6 V. u8 A/ J- j
    0 ~! Y* i- q$ G$ \3 c
    前言
    8 `6 {2 t. a! x  {/ p; q第1章新标准的诞生1  s" h" ~7 C/ `
    1.1曙光:C++11标准的诞生1
    ( I  r; N1 g) w3 G' V4 h3 L1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1) A0 g- P3 L5 S; X* {
    1.1.2什么是C++11/C++0x2  b- \, P* v, K: @7 R: i
    1.1.3新C++语言的设计目标3
    $ t6 @) d' P+ l3 d( b1.2今时今日的C++5- I/ J: z# }6 q0 j( ~/ f
    1.2.1C++的江湖地位5
    8 k0 K4 ?2 @0 F5 B2 B1.2.2C++11语言变化的领域5* t4 k0 J  l0 }5 Y" I6 f1 w
    1.3C++11特性的分类73 P' N) w+ P; M; ?
    1.4C++特性一览11
    8 ^5 d( `* q9 i+ e- |( M1 c% z# c1.4.1稳定性与兼容性之间的抉择11: O3 d5 j0 T  s- Z7 n
    1.4.2更倾向于使用库而不是扩展语言来实现特性12
    2 x# j5 M/ }# ?- g0 q1.4.3更倾向于通用的而不是特殊的手段来实现特性13: A: q$ a8 I  f' F/ y
    1.4.4专家新手一概支持137 L) n  d" E7 X- b: E! v! A
    1.4.5增强类型的安全性14
    . d" W1 {8 v: y7 o1.4.6与硬件紧密合作149 h0 F9 B4 D0 ^# b. C# n# C; c
    1.4.7开发能够改变人们思维方式的特性15* M) l$ O3 R$ M: W. V" V' C. {
    1.4.8融入编程现实16
    5 Y# a) ?7 a2 S; \, |$ Q3 r1.5本书的约定17. G0 E$ V# W; {* c# W4 ]
    1.5.1关于一些术语的翻译17
    % n; k6 t+ i/ {! R1.5.2关于代码中的注释17
    $ W% N7 ?  o# K2 x9 m' i+ O4 a. A1.5.3关于本书中的代码示例与实验平台18
    9 c, i. n1 p- y7 J! q& w- V' x  g第2章保证稳定性和兼容性19
    7 v- {; |6 Q" ]9 v( j2.1保持与C99兼容19
      [; p) u. V! t+ d( K6 i2.1.1预定义宏19* Z$ a# W3 i0 }3 V; @
    2.1.2_func_预定义标识符20
    . L0 B0 |. z* X. Z; T/ S" r2.1.3_Pragma操作符22( ]/ m- ~; \; l/ d) S' q
    2.1.4变长参数的宏定义以及_VA_ARGS_22
    4 F9 x- ~1 V8 E! d4 K0 x2.1.5宽窄字符串的连接23
    * H" R9 l1 W2 H4 l- [2.2longlong整型23
    ) [; D* O( {+ }. D3 x2.3扩展的整型25
    # X+ j# Y' z- P. `  f* y2.4宏_cplusplus26# _: Y8 a4 L9 r4 Z7 m7 y& {9 a
    2.5静态断言27
    # {# F" @5 E/ L& D$ ]( l2.5.1断言:运行时与预处理时271 H) o; t8 |5 p' A  z
    2.5.2静态断言与static_assert28* F0 {8 Y+ X8 g, Z/ u
    2.6noexcept修饰符与noexcept操作符32
      i- k2 [! @$ k5 c, F2.7快速初始化成员变量36
    4 ^/ y. _: m+ i2.8非静态成员的sizeof39
    2 L- l- C* P" y* y. \2.9扩展的friend语法40
    3 k, n: z( q, i+ B# |1 A2.10final/override控制44
    ! ~+ T, p8 P9 k1 C% c( e" I: l2.11模板函数的默认模板参数487 H3 G# N8 N7 D
    2.12外部模板50, e0 k& C/ S* F: }- J0 Q! ^  d* v
    2.12.1为什么需要外部模板50# I! C; P0 l$ P8 K& e3 _
    2.12.2显式的实例化与外部模板的声明52# e% z' Z7 \' z; d* c  A" m
    2.13局部和匿名类型作模板实参54% r# t% v$ A. T6 d
    2.14本章小结55
    & x( v$ Z9 L" J, @" l第3章通用为本,专用为末57' P# q: H/ ~- ]+ _( D* ^2 R! @
    3.1继承构造函数57
    2 M2 l" H$ _. k4 W( b0 ~3.2委派构造函数62# M' l  k4 A- r' n. v
    3.3右值引用:移动语义和完美转发689 f" M0 O8 d$ G  Z: W. _6 _) `
    3.3.1指针成员与拷贝构造68
    # Y9 M. ?0 h5 m) x4 V2 `3.3.2移动语义69% {% j1 y- \) Q- ^* d
    3.3.3左值、右值与右值引用75
    + a5 J1 {, f8 d0 x! y3.3.4std:move:强制转化为右值801 F. Z+ {0 N3 V& U$ Y6 ]
    3.3.5移动语义的一些其他问题825 M5 a$ Y: |. @3 X9 l6 {7 O
    3.3.6完美转发855 @: R' [& j% Y% w+ X  s4 r; N5 n
    3.4显式转换操作符89
      P* I4 X5 m" D7 a% @3.5列表初始化92
    ( u8 J) b0 c) @3 n$ [3.5.1初始化列表92
    4 G- R) T! Y5 t* ?, k3 v3.5.2防止类型收窄96) j+ g# \" `& V5 j9 c
    3.6POD类型98
    9 V! X! I' x' G: T" q3.7非受限联合体106
    % I7 A+ n! }8 ]5 _2 o4 j/ `$ N$ V3.8用户自定义字面量1105 ~+ v2 A6 d* Z2 q
    3.9内联名字空间113
    7 F" B! A+ F1 n& L9 _3.10模板的别名118
    1 o% z: o/ w  @3.11一般化的SFINEA规则119
    # w) G6 I6 x( _" Y! K2 l3.12本章小结121' L0 ]2 B" y) E$ {1 f2 k) j" ?" J
    第4章新手易学,老兵易用123
      T* i* Q! X( M- F/ c4.1右尖括号>的改进123
    4 Z. ?. K  [# C. r/ g$ f% Q4.2auto类型推导124( S* T( Y+ s% w
    4.2.1静态类型、动态类型与类型推导124
    + ^  T2 W  ^& T6 C5 O  J+ t4.2.2auto的优势1268 _6 A9 Y' o; s5 X+ O
    4.2.3auto的使用细则130
    0 l2 }. v( E7 x& D1 I( |4.3decltype134; l9 D, b2 o, R3 o; P& h
    4.3.1typeid与decltype134% N0 p: t( X9 g& {) W* Q
    4.3.2decltype的应用136) `8 a; w+ p( G# ?" T5 d! Z9 z/ ?" }6 w
    4.3.3decltype推导四规则140
    . Z4 w( X0 v2 z- ~4 a  \, p4.3.4cv限制符的继承与冗余的符号143+ H: g* i7 G9 t# q+ O
    4.4追踪返回类型145& t* b; [3 J9 u# Z7 S5 Y2 i. V: O: M
    4.4.1追踪返回类型的引入145- Z. [$ h1 l5 C2 a, s
    4.4.2使用追踪返回类型的函数146
    1 s4 x3 r) O% y8 t4.5基于范围的for循环150
    ( j/ W( Q1 B5 o& z) R0 M4.6本章小结153/ L! S5 l: y# g6 Q/ v9 x
    第5章提高类型安全155
    & l$ F9 w! i- z$ V5.1强类型枚举1555 {6 o3 q5 z. e
    5.1.1枚举:分门别类与数值的名字155
    ' u1 F6 |/ }5 S& w5 c$ d( o$ T5.1.2有缺陷的枚举类型156. q3 k2 n" L' c5 F. X
    5.1.3强类型枚举以及C++11对原有枚举类型的扩展160  n8 R  ~( Y$ f' L
    5.2堆内存管理:智能指针与垃圾回收163, F- O/ A0 a3 _. |3 g) q
    5.2.1显式内存管理163  C4 s/ y- U' F  ]- N& O( v8 I8 V
    5.2.2C++11的智能指针164
    , \$ f+ S4 X/ U5 Y4 t5.2.3垃圾回收的分类167. S" h4 V3 l& h( r& ~) _" D2 p* s9 [
    5.2.4C++与垃圾回收169
    ) l) t5 [- c" l6 {& M$ w) j5.2.5C++11与最小垃圾回收支持170
    # |+ J$ B8 ^2 G/ `* l0 ?+ Z; N$ W5.2.6垃圾回收的兼容性172
    : t8 _: X/ }$ J; _5.3本章小结173: P: z% @2 M+ @( E3 m- M
    第6章提高性能及操作硬件的能力174
    + P7 V  q. m& A9 \6.1常量表达式174
    / g) I! Z& ~6 C# w3 D1 g4 \& q) ^, |6.1.1运行时常量性与编译时常量性174
    : B) _3 h* x' J4 `7 H7 Z6.1.2常量表达式函数1763 G; Z9 m% y0 _& }
    6.1.3常量表达式值178
    " |6 g, T% R# c  @6.1.4常量表达式的其他应用180
    0 k/ s0 T% J) B3 H* T6.2变长模板183
    3 a4 t/ J4 Y( C, W3 u8 ~6.2.1变长函数和变长的模板参数183- a* b2 l) H3 `4 N. q. t! j7 y8 T
    6.2.2变长模板:模板参数包和函数参数包185/ ~. |! W7 ^/ U7 I
    6.2.3变长模板:进阶189% f) r- G5 W4 |- h' ~
    6.3原子类型与原子操作196
    0 m, j) h8 Q$ G+ B5 G6.3.1并行编程、多线程与C++111965 O8 A! c- @% e5 K: o# J0 M2 @1 c
    6.3.2原子操作与C++11原子类型197
    5 i3 C* p" |8 s1 P9 U/ _9 i$ @6.3.3内存模型,顺序一致性与memory_order203
    / i& O2 d" {4 [9 P9 ?& w6.4线程局部存储214
    ( B0 J6 a4 V* V- G+ Q& ~7 j6.5快速退出:quick_exit与at_quick_exit216* J& X/ l1 `9 t- b- O
    6.6本章小结219
    1 p. i3 R! F! ]9 Q. U: {' a! ^第7章为改变思考方式而改变220
    ) C6 Q6 [3 Z+ R# e& E  {7.1指针空值—nullptr220
    ; o0 ]. v* O! u7.1.1指针空值:从0到NULL,再到nullptr220
    ' f" e! r$ \  q  h  [/ p7.1.2nullptr和nullptr_t223% w+ S! j" @. D3 w" ^
    7.1.3一些关于nullptr规则的讨论225) V8 y# v( B; ~+ W( U8 Q8 M7 Q
    7.2默认函数的控制227
    ' i- C% V( c; d3 |8 P: [7.2.1类与默认函数227! X$ M! R4 }7 a) I. K5 X
    7.2.2“=default”与“=deleted”230
    / t* B- u( h* R8 m) l7.3lambda函数234
    ( ]& _* H8 a) l( e( K0 O7.3.1lambda的一些历史234
    : {) |3 n0 u4 {+ u/ r7 C; G7.3.2C++11中的lambda函数235
    + G4 D/ a/ w2 w' F0 ?8 h. e. ^7.3.3lambda与仿函数238/ n) g, h9 z8 ?1 B" C" G
    7.3.4lambda的基础使用240! S' H/ W2 o6 F! ]$ F
    7.3.5关于lambda的一些问题及有趣的实验243
    ' b1 I( \% y' U! E' z7.3.6lambda与STL247; R( O* x: _% H2 ]. _9 T* |
    7.3.7更多的一些关于lambda的讨论254! `1 k' u  V; ?+ ?
    7.4本章小结256
    6 ~( y6 K! d: \' H2 F( v第8章融入实际应用258
    / W& `- P0 R  [) g, i& ]8.1对齐支持258) a( ?7 Z  o: @9 a
    8.1.1数据对齐258
    , f9 J' C: M0 H+ ^3 `8 G- k8.1.2C++11的alignof和alignas261$ |$ x& Q7 h1 ^
    8.2通用属性267
    0 U, g5 ^% k' Z- W9 f- ^0 V! T4 Y8.2.1语言扩展到通用属性267
    9 o! L+ {) x* _. G- n, K% e% e8.2.2C++11的通用属性268
    + ], j6 c. G! a8.2.3预定义的通用属性270
    3 D% O( @( [- y( x, o$ G8.3Unicode支持274
    : r( n0 c/ |; e  ]6 [& z8.3.1字符集、编码和Unicode274# b* N0 F1 _1 _3 C
    8.3.2C++11中的Unicode支持276
    # n1 L  f! A+ z; w4 ?) v/ \; F8.3.3关于Unicode的库支持280
    ! k4 R0 o& T; q# J1 U- x& `8.4原生字符串字面量284
    - v& W( l. {5 Q* G1 a8.5本章小结286
    * L- W1 h, E+ W6 D3 ^( i, y附录AC++11对其他标准的不兼容项目287% p7 N  o9 F0 ~! v$ r. ?/ {/ B
    附录B弃用的特性294
    . N) g. ]) y1 L+ I6 s附录C编译器支持3019 J& |6 R! {6 K; U/ [; Y
    附录D相关资源304: S% f) E! `- ^/ l: k2 S9 [5 v9 N; h

    , A! r6 C( T) t9 {+ E( y- N  M, h! {6 I) a  S; ?( ]' f: ~* b
    封面
    ( x5 ?% c' K# J$ g5 f4 m 1.jpg " E. ^* A; b. \6 t4 q0 z5 j
    : W" h/ \0 P' C! z5 a) ]2 M- F
    截图6 P' u" o$ y9 b! }4 \7 J+ D& ]
    2.jpg
    , Q" k7 G0 x  n, h6 h* d
    游客,如果您要查看本帖隐藏内容请回复

    ( v9 @/ _7 w7 b; h" _$ \& s; R; x5 C( }" ?$ g/ ?
    + J9 q7 I, J2 _, o( }
    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, 2025-7-20 15:21 , Processed in 1.065358 second(s), 107 queries .

    回顶部