QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4972|回复: 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 编辑
    # C) }- I0 h% e4 d6 R0 u6 l
    2 j! e3 d3 G  d  N6 s* k内容简介
    . |% K; W! S; W) x9 I+ y1 \4 j  f+ t& u深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。
    ( o0 H; v; r1 \# y深入理解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的相关资源。5 S2 K! ]) h' @3 N% a; b$ S$ }

    7 I, |) D) N" J0 g编辑推荐! ^0 {% D8 B' e) u! {1 x
    深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。
    . k+ @! {8 W2 u' m- F* D
    + L$ \) b- c2 u/ \作者简介
    2 K" M2 g: Y9 [' q作者:(加拿大)Michael Wong IBM XL编译器中国开发团队4 q7 O. ]6 S' ?( Y6 |

    / ~, D- `. e9 W4 y  eMichael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。
    9 p' g/ c2 @3 F3 V2 R; I+ {) JMichael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。
    ! t4 u% W) V# M. u' n3 @早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。; N( Q8 ]( W! J: p& F5 {9 M3 A
    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新特性的开发工作。. y/ g$ A# f- n! n2 S

    0 r) }3 R+ o; Q* }8 K目录免责声明/ z* d2 ]: a% |

    % F# u4 W+ l" {5 t8 K  N3 J. ]1 J前言
    ( r# u% j. t* q7 u第1章新标准的诞生1
    - Q" P; T. J( i4 e& x1.1曙光:C++11标准的诞生1
    $ ^3 i  A" ^' x9 F2 n% u" [1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1) L) a5 t! R  w7 D1 v
    1.1.2什么是C++11/C++0x2
    ; o- q; S/ p+ r2 Y3 {6 e. F1.1.3新C++语言的设计目标3
    + u- Y8 D- `. i' J1.2今时今日的C++5
    ; Y# y* }/ H2 t2 k  Y/ b$ X$ c  |1.2.1C++的江湖地位57 H2 G) P& A2 L
    1.2.2C++11语言变化的领域5, h  Y& P' {# [
    1.3C++11特性的分类7
    # V) C2 `+ V. h4 }0 M9 _! s1.4C++特性一览11
    0 y& P+ X2 C3 ]9 _1.4.1稳定性与兼容性之间的抉择118 j4 G# ?  Y6 N; q; U3 ^
    1.4.2更倾向于使用库而不是扩展语言来实现特性12( b9 w0 v  f* I: U9 W
    1.4.3更倾向于通用的而不是特殊的手段来实现特性135 C7 k4 _6 u, \* T1 L
    1.4.4专家新手一概支持13
    5 @) a( E* Z3 c6 e2 q" F7 m6 H: f1.4.5增强类型的安全性14
    . r+ ]) j+ e" u' {5 r: o1.4.6与硬件紧密合作14% \5 o5 D* u- V* @/ I
    1.4.7开发能够改变人们思维方式的特性15& m6 p0 |/ J" j# R  ^
    1.4.8融入编程现实16
    , C: u: R  c( j: _* z* i  E' h1.5本书的约定17
    # P1 @0 l0 v/ `/ o8 O+ A! l1.5.1关于一些术语的翻译17
    ( Z6 [- T$ n5 d" r9 d, H3 ~1.5.2关于代码中的注释17
    * F$ a+ X! t" {) B, S" t1.5.3关于本书中的代码示例与实验平台18. C! m( s9 Z  \$ J$ F. \% f
    第2章保证稳定性和兼容性19$ I6 V2 M  ^& K" B7 ~2 b
    2.1保持与C99兼容196 i+ H1 ^5 {3 [7 o& z$ x+ w
    2.1.1预定义宏19
    ) S# ~. N3 U/ j2.1.2_func_预定义标识符206 h, b$ T$ a3 E4 \, w
    2.1.3_Pragma操作符22
    / a) @( }* X" {4 \$ \$ C+ {1 e$ S/ v2.1.4变长参数的宏定义以及_VA_ARGS_22
    0 @! m' g( F; [; V( t6 z/ ^2.1.5宽窄字符串的连接23
    ! W& i% v6 n' _1 [; S6 m2.2longlong整型232 |  D& Y/ W! T4 J0 b5 n
    2.3扩展的整型251 P, m! B. U; \' t  ^
    2.4宏_cplusplus26
    2 Z9 X( J6 q7 A% {2.5静态断言27) Z2 |1 p# J& f
    2.5.1断言:运行时与预处理时27
    # u/ ~% U- F) P$ F2 g$ o1 ~/ }2.5.2静态断言与static_assert282 c; V1 L" u/ t0 R5 l
    2.6noexcept修饰符与noexcept操作符32
    - n7 U& z0 G% B- a: Z$ ~2.7快速初始化成员变量36# E8 `: Y" E4 }5 ^/ \5 G. g
    2.8非静态成员的sizeof39. j( j8 K1 S! A3 o- b( |" E8 J% w
    2.9扩展的friend语法40
    + \5 i% Y# `( ?2.10final/override控制443 v0 P) ?7 }' z( @, i
    2.11模板函数的默认模板参数48
    0 @1 \' `1 q8 b; r2.12外部模板50
    $ [9 u1 C) O& t+ I( R2.12.1为什么需要外部模板50
    7 v" C" L! U4 l1 Z/ L/ {2.12.2显式的实例化与外部模板的声明52
    0 q" l6 f, X6 I& A  I0 ]" r2.13局部和匿名类型作模板实参545 B0 L" }0 W/ C2 |
    2.14本章小结55
    8 n5 @, Z1 V0 x( Y$ F第3章通用为本,专用为末57
    : a' m  Y* A8 u% O  @$ k0 X# x+ D3.1继承构造函数57
    - W8 e8 b; M! E3 }6 }0 a3.2委派构造函数62% u+ f6 d" A9 a& t/ `, n& H
    3.3右值引用:移动语义和完美转发68. j1 G# ?5 a/ ^) {, a2 j# I* P; {
    3.3.1指针成员与拷贝构造68
    5 n! `: k9 Y- B) U" e' p3.3.2移动语义699 Z8 Z1 i, h; {; K7 X! s0 v- B
    3.3.3左值、右值与右值引用75# I. z2 H) o7 @9 T0 ~
    3.3.4std:move:强制转化为右值80
    2 G4 s( T6 n# ]! Q3.3.5移动语义的一些其他问题82
    - e4 h* j0 a" j. H+ I3.3.6完美转发85
    3 l' L- o6 e# N1 B3.4显式转换操作符89! e; R: q& Z* \/ T7 n
    3.5列表初始化92
    : }$ G6 ?$ H. }0 @. X' e- o* x; o3.5.1初始化列表92
    $ Y: {0 N8 p! p# h, C3.5.2防止类型收窄96
    $ n2 E' W+ n, v) @3 C2 L3.6POD类型98
    4 l; b  }' G9 K7 x7 p$ M3.7非受限联合体106( Z% M( `9 O  q- B: F% q
    3.8用户自定义字面量110* ^; u0 n+ U* s
    3.9内联名字空间113: T3 H( p! V, B
    3.10模板的别名1187 J; `- p5 w: z$ ~
    3.11一般化的SFINEA规则119
    1 r' H! Y$ K9 F" S3.12本章小结121
    2 ?* u" c5 r2 d7 i$ H# s3 G第4章新手易学,老兵易用123
    3 N* m, u# g- m5 G4.1右尖括号>的改进123
    5 R- M$ ]  T, I4.2auto类型推导1244 X+ q& C# |" z
    4.2.1静态类型、动态类型与类型推导124
    * Y1 P& }; b. U: B  T/ I# k4.2.2auto的优势1266 u8 Y! @2 N1 x
    4.2.3auto的使用细则130- ^; ~0 F1 C. K7 m5 O
    4.3decltype134/ [4 A$ |' P2 m
    4.3.1typeid与decltype134
    # C: |' s+ r5 R/ h; J1 z4.3.2decltype的应用136
    : n6 ^  e7 U- }7 y4.3.3decltype推导四规则140  H1 C2 n2 n  S% k# c7 F
    4.3.4cv限制符的继承与冗余的符号143
    3 c5 R0 j" M: M0 H/ b4.4追踪返回类型145/ q1 q8 H7 k. ~  Y2 Q& M( @  C
    4.4.1追踪返回类型的引入1454 ?' P7 G# m, _$ r2 R0 j$ t
    4.4.2使用追踪返回类型的函数146
    # @4 }" O1 O1 D; T  I4.5基于范围的for循环150; v, X) l& W; y+ m4 v
    4.6本章小结153
    ( M+ A' Z% ^" o7 k第5章提高类型安全155
    3 y1 ~3 v# N/ j" U3 K. D+ R# m$ ^5.1强类型枚举155; {/ Q( u; y: X0 j; z
    5.1.1枚举:分门别类与数值的名字155( u# K+ g# Y) g6 n) z
    5.1.2有缺陷的枚举类型1566 s  s0 h8 u  Q( ~% S6 B
    5.1.3强类型枚举以及C++11对原有枚举类型的扩展160
    , l; q  ^! e2 Z. c2 v; }5.2堆内存管理:智能指针与垃圾回收1634 l; p& G, y3 [9 V; i% j3 P
    5.2.1显式内存管理163# f& i' c9 D" N9 Q' y
    5.2.2C++11的智能指针1641 S$ V6 P* ~: P; ]  K$ W9 P
    5.2.3垃圾回收的分类167" w" T! J+ P; h8 K: |4 p, X
    5.2.4C++与垃圾回收169# @" [8 ?8 z) X) P
    5.2.5C++11与最小垃圾回收支持170" p( M$ a' p: \' j6 p
    5.2.6垃圾回收的兼容性1728 G. F. z8 ^8 V5 w. {
    5.3本章小结173
    ' |; x( ^' [' t7 y+ i1 ?第6章提高性能及操作硬件的能力1741 a' z' ~: x6 U3 [0 e
    6.1常量表达式174- s; f, o7 L/ N) \, R9 w' Y% f
    6.1.1运行时常量性与编译时常量性174& g. |7 ~  o4 m9 v
    6.1.2常量表达式函数176
    ' c! x1 d. @# J* w; v( h; ]0 `6.1.3常量表达式值178/ r, [3 e) c+ T: Y
    6.1.4常量表达式的其他应用180
    ! s7 {' ^1 g: j! j4 a' _6.2变长模板183. F+ n) v# y# W; Q( s4 q6 B
    6.2.1变长函数和变长的模板参数1832 [" r' X& f9 g% w1 n# O. K- i
    6.2.2变长模板:模板参数包和函数参数包1854 h( s! ^( R' x" J4 A
    6.2.3变长模板:进阶189
    9 U9 B% e( h! w, j- y3 m! \6.3原子类型与原子操作196& Y' W% u$ a' J- _# T! N7 G
    6.3.1并行编程、多线程与C++11196( @# l3 Y2 a/ v  _) P
    6.3.2原子操作与C++11原子类型197
    4 p" a! N$ L0 P8 [$ Q4 n$ |6.3.3内存模型,顺序一致性与memory_order203
    ' ?  j' d, G8 w& U6.4线程局部存储2148 O) J/ h  ]; M) Q: G" w  W
    6.5快速退出:quick_exit与at_quick_exit216
    7 \. `" u) w. O' L8 h% P3 I/ U6.6本章小结219
    8 c+ x& o/ \$ H: m4 a5 i第7章为改变思考方式而改变220
    & e& L  p6 Y7 e: ^- b& v: A7.1指针空值—nullptr220
    7 L, E3 P% ~- T) h% X3 A2 O0 D7.1.1指针空值:从0到NULL,再到nullptr2205 I2 F$ j0 q' l7 ~% E
    7.1.2nullptr和nullptr_t2232 W; Q$ `1 _1 p; ]9 m& `' |
    7.1.3一些关于nullptr规则的讨论225
    ) S# u; [% }/ A: A! Z7.2默认函数的控制227% B( G+ P3 b% C- B
    7.2.1类与默认函数227
    - @  w& Q. Z6 {; u4 m$ L4 C7.2.2“=default”与“=deleted”2302 ~/ s; c0 g* @! e
    7.3lambda函数234
    8 v0 }7 C) f- O* K. V$ c7.3.1lambda的一些历史234' O  i: }$ y' D" Q  p
    7.3.2C++11中的lambda函数235+ L- n+ x, O+ n$ H- V# h
    7.3.3lambda与仿函数238
    ) D! |3 v" l& ~% H5 A- u; V7.3.4lambda的基础使用240
    ; q4 |8 N+ [( Q. ~& n7.3.5关于lambda的一些问题及有趣的实验243
    % N* [! R' `9 b* {  `7.3.6lambda与STL247' a+ N4 G+ Z0 ]8 [% J* Z. l0 x
    7.3.7更多的一些关于lambda的讨论254
    7 |/ n( J- `6 C  M7.4本章小结256/ W/ |9 r( ]/ k( I% [/ y
    第8章融入实际应用258
    7 W7 I% \+ z) s$ ]$ S4 N) r8.1对齐支持258
    , z5 u. z2 h0 a) L# I8.1.1数据对齐258
    $ C1 C7 y9 ~7 Y5 a8.1.2C++11的alignof和alignas261
    ; ], u  A$ D$ a8.2通用属性267
    * k5 l; E6 v( N3 [4 {: ~8.2.1语言扩展到通用属性267
    ) @2 V2 g! Z' p1 o8.2.2C++11的通用属性2687 ?( D( l" Y: Z8 [, X: C
    8.2.3预定义的通用属性270
    5 C! n1 s: O2 Q* ?' {9 w6 S% L& X8.3Unicode支持2740 U9 ~7 X$ d6 {* C8 E& N9 T
    8.3.1字符集、编码和Unicode274, R. n: r8 L. C- m: W
    8.3.2C++11中的Unicode支持276
    ! C% \" }. o- D/ Y8 Z% m8.3.3关于Unicode的库支持280" v+ }# `5 ]. g# Z2 _
    8.4原生字符串字面量284) _( k* k( D1 [; V9 I- U
    8.5本章小结286( [) ~& g2 ?& h
    附录AC++11对其他标准的不兼容项目287
    4 S8 I6 C2 q7 H) @附录B弃用的特性294% P# y. G" C+ @% U/ \6 A4 I6 d) R
    附录C编译器支持301
    / F7 L, s4 ^0 R7 C; v6 @) M: l附录D相关资源304+ ^6 O- i+ d4 i* X, v
    9 |6 @  q4 U2 n

    0 u, {) N* a, r8 y# B, x封面
    & o# k. s3 t" e* M9 T0 D 1.jpg . U# F9 K( e( f/ }% ^: c' W
    * @3 b( @6 z6 ?2 S
    截图' }  h: Y5 {% S$ ^, h7 N1 ^- e
    2.jpg 0 L, e7 N$ v+ u  e
    游客,如果您要查看本帖隐藏内容请回复
    0 Y1 u# d3 v6 W8 Y* ]% g( J

    - a' T% b% J0 _; V' c. T' l. ]+ |& Z
    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-16 18:11 , Processed in 0.523496 second(s), 107 queries .

    回顶部