QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4962|回复: 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 编辑
    * w5 z4 X' z3 O; `; \9 {9 S5 v1 M4 u' V7 G
    内容简介
    ; z, u9 O7 j4 k深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。- e2 z6 P3 W  ~* v! 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的相关资源。
    ! J: Q0 v; D" y* K: L. ~2 m' k! t/ r2 |
    & M7 n) h# @+ s/ l. N; B% {编辑推荐
    1 c3 Q& ]! u% D深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。7 L8 M& v$ H$ ]( p1 M3 U

    7 c0 K" Q2 Y9 w4 E, l# |9 T! ]作者简介
    - {* o4 `* o; B( _0 [4 u4 P作者:(加拿大)Michael Wong IBM XL编译器中国开发团队! O* M6 e: h) V! y
    " U" Z" o, E' W/ n3 C
    Michael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。
    - f! \$ m, u  G0 w% tMichael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。/ O& r; Y. n: {
    早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。
    " a) t# d$ k9 M6 _! [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新特性的开发工作。  F% y) P$ n! m! }8 v' N

    . ~1 r- Q# g/ a0 `, G5 Q# }) k/ G目录免责声明* n. H% A& r: H/ i
    # `6 U. b/ O% l0 h3 f  `; T! k+ [
    前言8 D5 l$ K: c( ?/ s6 x1 B
    第1章新标准的诞生1
    4 F" x/ U% P( b# @# h$ Y5 H& p( X1.1曙光:C++11标准的诞生1
    0 j  a2 M+ m. c+ b! Z: q, f1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1
    ; g5 u3 w* X& T. T+ m+ `3 g) Z7 \1.1.2什么是C++11/C++0x2- Z# k$ Z+ Z* K  I' M8 ^* H0 R+ r
    1.1.3新C++语言的设计目标3
    - q& {! D9 W9 }; L# m) G  v1.2今时今日的C++5
    " Q8 r$ ~0 ?0 T' H; k1.2.1C++的江湖地位5% j/ Q% k  Q0 o4 D0 E
    1.2.2C++11语言变化的领域52 [( Y, H+ u- Y
    1.3C++11特性的分类77 r5 [: U' f3 F; S: C& t
    1.4C++特性一览11
    7 I* F8 g: `- _$ h1.4.1稳定性与兼容性之间的抉择11* \0 I. a* a/ m+ a# k# {1 f5 v
    1.4.2更倾向于使用库而不是扩展语言来实现特性12# f* g2 j% ?- |
    1.4.3更倾向于通用的而不是特殊的手段来实现特性13- ~  p* w) c* Q9 ~! U
    1.4.4专家新手一概支持13
    8 B( i! @. \5 _6 r* ^' J9 u' X1.4.5增强类型的安全性14
    , G0 T6 Y$ G9 R3 T1.4.6与硬件紧密合作14. |  y. }. x. f& e
    1.4.7开发能够改变人们思维方式的特性15
    % G7 w! W8 `7 L* v' }; e1.4.8融入编程现实16
    5 K8 Y( e/ e1 ^4 _1.5本书的约定175 g" i1 N* B% q" o: t: Y5 y$ M1 X
    1.5.1关于一些术语的翻译17
    : t% F1 R1 ?' C) F1 r) z1.5.2关于代码中的注释179 l' M& G  ~" k2 ~- p
    1.5.3关于本书中的代码示例与实验平台18) ^/ H! F& {" m; A
    第2章保证稳定性和兼容性190 u* ~' M. }! Q
    2.1保持与C99兼容19
    - X  t' b, |0 c0 V9 C" N2.1.1预定义宏19: x1 D0 i! [+ U( P; J+ T7 J. y2 z
    2.1.2_func_预定义标识符20
    " ~9 H* q) B0 r& a' @! d2.1.3_Pragma操作符22
    0 Q$ }  [' |+ ~9 n+ P% Z2.1.4变长参数的宏定义以及_VA_ARGS_222 W: ^0 J' x: f) {
    2.1.5宽窄字符串的连接23
    ; m* g# U6 G& L# ~2.2longlong整型23
      e! p8 {6 S8 i( d5 e; @2.3扩展的整型254 h' p; S; k$ S7 O+ z7 }, N0 E
    2.4宏_cplusplus262 ?0 ?+ m0 _6 V, B( F! ~
    2.5静态断言27& l' U4 c: p$ J7 g% Y1 A
    2.5.1断言:运行时与预处理时27
    + r2 Z# Y' B8 H6 L8 J2.5.2静态断言与static_assert289 l' E( L# c  b. `
    2.6noexcept修饰符与noexcept操作符32
    4 m" Y; A8 X7 F$ D0 ~+ v2.7快速初始化成员变量36* Z3 W, r4 A$ v3 m0 e
    2.8非静态成员的sizeof39
    2 ]% [6 D+ f- g% R- }/ J# I8 W2.9扩展的friend语法400 f) u. u8 B+ X6 |4 a2 `3 b
    2.10final/override控制44% C) h7 M$ O( s: P" i
    2.11模板函数的默认模板参数48
    : V- }  _7 u5 k/ w" i2.12外部模板50+ r: d1 d, `! t$ y
    2.12.1为什么需要外部模板50! K8 A5 c4 b3 N) t
    2.12.2显式的实例化与外部模板的声明52' K# l; ?. e+ |6 I! H
    2.13局部和匿名类型作模板实参54
    $ c9 i( f6 |' d- d3 s6 f2.14本章小结55  g' ^$ D3 L  n. d1 S3 G' m: k% M
    第3章通用为本,专用为末57% t1 l# ~) W$ Y3 N
    3.1继承构造函数574 l. p0 D' W6 a+ C7 r
    3.2委派构造函数62
    ( \- f* Z0 j  b0 Z, K  H: n3.3右值引用:移动语义和完美转发68
    8 i9 n/ s1 ?$ c7 t3.3.1指针成员与拷贝构造68# K6 x. E7 I9 p; J3 [! V
    3.3.2移动语义69
    - B2 y8 ?5 q. l0 A3 B3.3.3左值、右值与右值引用75
    4 n0 `7 \) ]5 e9 u/ K3.3.4std:move:强制转化为右值80' M" Q6 _- m, E5 Y
    3.3.5移动语义的一些其他问题82; V! m- \' J3 Z
    3.3.6完美转发85" i& J% N$ H+ o! d# Y
    3.4显式转换操作符89' F7 P( u' P) e5 o! }  T: Q
    3.5列表初始化92
    ) j" d; M9 G; u3.5.1初始化列表92
    " }' S( G( k8 Z+ w  F7 J3.5.2防止类型收窄96
    8 S+ F  g: X0 N) J1 U+ R# X3.6POD类型98
    9 j1 l$ w( U  V: r7 `# v3.7非受限联合体106  Y( F5 Z' R+ |
    3.8用户自定义字面量110
    / V/ @) D# W3 ?) F6 z( r3.9内联名字空间113
    6 u2 M( o8 o4 J: q5 y  ~/ x3.10模板的别名118
    ' A6 @- k$ z8 Y, K8 q  x+ D3.11一般化的SFINEA规则119
    + _( d0 f/ M: r4 o3.12本章小结121+ \, O4 z' @" ~
    第4章新手易学,老兵易用123
    * L& }$ r% ?! e& t4.1右尖括号>的改进1235 q8 X5 r9 \+ `8 a! e
    4.2auto类型推导124
    , }  k$ t/ e# B' q; s4.2.1静态类型、动态类型与类型推导124
    5 S$ I6 Z+ o" S, Z- z4.2.2auto的优势126
    / t1 a2 z# K4 s# c& r" C" c) z4.2.3auto的使用细则130
    . g3 D; S% ?7 J- Z+ H  V4.3decltype134# d: z, y( H% F# x( g
    4.3.1typeid与decltype134
    2 Y# ]2 A, d9 T) w; l: b% z% u4.3.2decltype的应用1368 b$ e8 o4 c2 ~) ~) Y
    4.3.3decltype推导四规则140: Z- w9 x; e2 X/ m
    4.3.4cv限制符的继承与冗余的符号143$ S# h! j$ [1 n9 c+ @
    4.4追踪返回类型145
    ! B" D/ P" ~% M( x4.4.1追踪返回类型的引入145
    ; r+ l: O  e2 p# y5 m4.4.2使用追踪返回类型的函数146$ M# ~% ~: U3 p  |* b& }# j& [
    4.5基于范围的for循环150
    , I7 x1 F, Z1 f) m8 k# f- ~9 ~- Y4.6本章小结153
    ! a! B; n8 ~! i第5章提高类型安全155
    2 d; F5 W) K2 c! P5.1强类型枚举155
    ! E1 R4 D% s, F6 |  G1 K5.1.1枚举:分门别类与数值的名字155& s$ p: h& h/ N9 D/ ^1 d& Y, m0 I
    5.1.2有缺陷的枚举类型156. b, p6 n) S2 N6 e4 d$ N: k
    5.1.3强类型枚举以及C++11对原有枚举类型的扩展160
    * w: v- P0 B  j6 V) o4 l! z5.2堆内存管理:智能指针与垃圾回收163' y, T' H  v2 f" K) ^
    5.2.1显式内存管理163" J" r, y6 f2 _
    5.2.2C++11的智能指针164
    3 t) h+ y& T* m9 [6 h, i& X! Y6 N5.2.3垃圾回收的分类167
    . I! `! j7 S1 g* N5.2.4C++与垃圾回收169
    $ `. f# Q0 h& o) Q5.2.5C++11与最小垃圾回收支持170
    ) k' [* k$ h, j1 ^' Y! x* _$ T5.2.6垃圾回收的兼容性1722 y3 V# H# t! y
    5.3本章小结1735 m! Y( A* S& r3 r3 t5 z
    第6章提高性能及操作硬件的能力1749 |# q& [& @8 ?7 j3 k
    6.1常量表达式174+ F. ?9 X( ?9 K! a
    6.1.1运行时常量性与编译时常量性174
    , i9 m; v/ K6 ^* y3 `( Z# u6.1.2常量表达式函数1765 ~- J5 I  @6 E; p' R8 f
    6.1.3常量表达式值178, U2 y8 {& v' {, q
    6.1.4常量表达式的其他应用180' a' S/ V7 r  G$ p2 u
    6.2变长模板183& `' l  E8 @: P
    6.2.1变长函数和变长的模板参数183
    " G) Z: r5 F/ w$ ~+ x6.2.2变长模板:模板参数包和函数参数包185
    + O/ p: v3 _+ ^+ y8 f& g: h6.2.3变长模板:进阶189
    3 k$ `9 T- I& ~" ]. `& a4 v3 l6.3原子类型与原子操作196
    + j- V$ Q0 \1 Z6.3.1并行编程、多线程与C++11196
    ' G2 n. m) F% b  o* C; ^& B3 r6.3.2原子操作与C++11原子类型197
    5 W3 [+ u1 R" c$ A2 F* A1 d5 \6.3.3内存模型,顺序一致性与memory_order203
    4 }) I$ _; }$ D6.4线程局部存储2141 N: I3 M9 o8 q& X/ W
    6.5快速退出:quick_exit与at_quick_exit216" o6 T7 q* J& y) R& F
    6.6本章小结219# A  ~( J- V  T0 \
    第7章为改变思考方式而改变220$ S/ B$ z% Y: U8 W0 K
    7.1指针空值—nullptr220; s4 ]& h( s7 @, _6 j
    7.1.1指针空值:从0到NULL,再到nullptr220, F$ k% ?. p  W4 M" P; m8 }6 O; [
    7.1.2nullptr和nullptr_t223, w7 C. K! \% k2 W) G
    7.1.3一些关于nullptr规则的讨论2257 C; M6 j, s7 q: R2 p$ p( r
    7.2默认函数的控制227$ z. ?8 A0 ~( p# K8 q
    7.2.1类与默认函数227
    6 [+ [# \2 V: N" V1 g. O! [* P7.2.2“=default”与“=deleted”230, D$ s1 x4 e1 L' B' N
    7.3lambda函数234
    * e/ Z" E" N9 t7 ]7.3.1lambda的一些历史234
    $ P5 J# t* A9 }7.3.2C++11中的lambda函数2351 ?3 p1 \4 i/ n
    7.3.3lambda与仿函数238
    , Q6 W! v$ k9 A+ x$ O; I7.3.4lambda的基础使用240
    ) @4 C, J1 P7 l6 {# w1 r. C7.3.5关于lambda的一些问题及有趣的实验243" T& u0 m6 o! v% I
    7.3.6lambda与STL247
    ' q" c6 g- [( x# Y4 H7.3.7更多的一些关于lambda的讨论254! P" Z+ B) C4 I
    7.4本章小结256
    + x. L1 x4 t- y; o第8章融入实际应用258' e2 x. m! `. i" z
    8.1对齐支持258# m  R' {1 S7 T$ G2 h; q
    8.1.1数据对齐2587 }( @6 r% f# ]  [- x
    8.1.2C++11的alignof和alignas261
    + f# {; d9 l% n3 J" I% j+ u( X: p8.2通用属性2672 ^+ J  k. @3 r& Z
    8.2.1语言扩展到通用属性267
    / `; ?/ {+ V# o5 [9 s8.2.2C++11的通用属性268' ~- M, q/ a& @0 g( m. L$ ^) X# E% @
    8.2.3预定义的通用属性270: u) Q- o2 e) W0 p2 B! ?
    8.3Unicode支持2745 I5 O/ z6 z8 m; B1 z0 L& G9 c
    8.3.1字符集、编码和Unicode274/ m$ V/ f, ~7 L7 r2 n: `* s
    8.3.2C++11中的Unicode支持276
    . _) z: j1 s! ^6 [8.3.3关于Unicode的库支持280) ]7 e$ A! J/ z4 W
    8.4原生字符串字面量284" Y. C8 d& |% f* K0 @& q
    8.5本章小结286
    ! R- x1 Q& D2 ^" A1 c( U0 c附录AC++11对其他标准的不兼容项目287+ P: s) K/ q+ N
    附录B弃用的特性294# D: y9 c8 {/ I1 ?
    附录C编译器支持301/ K8 l8 T5 D3 Y8 ~9 N
    附录D相关资源304
    ! J' ~9 |2 ]+ u; x+ w$ `

    3 K4 k+ b" _1 L- |5 d0 o8 M' A) N9 k
    封面
    / Q  S/ Y0 E' t0 [2 m/ @$ }# s 1.jpg   G4 Q7 V1 v/ `4 x% M: l2 R; ]

    7 F0 z( @9 @% o* W截图# I7 d6 i6 b1 E
    2.jpg ) L9 g- q' @7 h& f
    游客,如果您要查看本帖隐藏内容请回复

    % ^. L: U8 D. E) w5 u, l8 v0 v/ T5 U
    1 S4 H$ @4 C- b! 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-4-15 17:22 , Processed in 0.520107 second(s), 107 queries .

    回顶部