QQ登录

只需要一步,快速开始

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

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

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

377

主题

148

听众

6010

积分

升级  20.2%

  • 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 编辑
    0 @7 j9 E8 N) w8 z
    5 V- C6 z$ u3 h" ]! H内容简介3 D4 Z. ^, V& d5 F" i# u% K
    深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。% d. E2 E0 _5 y" \6 k
    深入理解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的相关资源。
    ' [3 R4 q% E: @, T4 |6 X6 u3 X- K  r, V$ a; T- f
    编辑推荐
    ( E9 B) l  i; W& t6 G! S深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。
    1 f" W; I  A; O6 a' j5 g! d/ Y8 w- a4 t, ^( A) r7 [5 U
    作者简介  o+ g8 h3 A% h1 p" m
    作者:(加拿大)Michael Wong IBM XL编译器中国开发团队
    # R4 ?7 D; o2 b: t0 y+ W
    0 ^& y, H; h9 p0 q+ u7 GMichael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。
    3 l: `' ?: @1 N2 V+ s# m+ w' TMichael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。
    5 i' R( t9 j! t: R7 Z早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。9 z: P6 V( ?* K0 ?9 V4 H1 r
    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新特性的开发工作。# d: j8 U. L* `. {
    " ^: k( r  G- R- F) O' b6 P/ C* o" l
    目录免责声明& Y2 b' L5 _# N! w
    # Z0 y* V1 n- \2 ~, P( n+ ]# W
    前言
    3 {5 L: J, {- K# B$ N1 ^3 ]1 S第1章新标准的诞生1; Y9 j8 ?" k5 u- P0 v
    1.1曙光:C++11标准的诞生1( F6 e0 m; y1 P( m$ E8 |! f, ~
    1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1; c' E+ F% U5 ?: L6 A5 d
    1.1.2什么是C++11/C++0x2$ v8 n8 L( t5 j( S* i# w
    1.1.3新C++语言的设计目标3# r8 ~5 @& g' l- z, D$ t) `
    1.2今时今日的C++53 n  I( p2 W, ~2 F# N5 R" E% f
    1.2.1C++的江湖地位5
    2 t) Y; e- _1 ^. C1 h8 f1.2.2C++11语言变化的领域55 V' U8 O! V  U8 X  L3 c
    1.3C++11特性的分类7
    * x- s$ C( j8 Q1.4C++特性一览11! i6 o/ q  x7 s" z, s
    1.4.1稳定性与兼容性之间的抉择11
    4 m& H4 U6 G" y% ?1.4.2更倾向于使用库而不是扩展语言来实现特性12  l" w  F. K# A8 v6 L! Z
    1.4.3更倾向于通用的而不是特殊的手段来实现特性13
    % r) K3 |' ?* F9 f0 i1.4.4专家新手一概支持13- r1 v$ Z! a+ L5 [% G
    1.4.5增强类型的安全性14
    ! d- \5 ^5 g6 S& u2 H1.4.6与硬件紧密合作14  M6 Q3 h, h+ i$ F* ?
    1.4.7开发能够改变人们思维方式的特性15* Z& E- h) e# F& s- K, w( M$ v5 q) V! c1 n
    1.4.8融入编程现实16
    1 u- L0 \4 Z3 J2 S& l# e1 m# F1.5本书的约定17! I( I8 ]& e) K0 N1 \
    1.5.1关于一些术语的翻译17
      L  O8 p1 G, ^6 ^; Z$ I3 f1.5.2关于代码中的注释17, v% a/ l& K5 H: `+ d5 |
    1.5.3关于本书中的代码示例与实验平台188 C3 q/ V8 O* O
    第2章保证稳定性和兼容性19
    0 x$ j: r! N  G2.1保持与C99兼容19
    " G) f, i  A1 O9 z2.1.1预定义宏19
    + P: \6 o0 }* s" n2.1.2_func_预定义标识符205 d* d# X8 `' E0 a; h6 O
    2.1.3_Pragma操作符222 P- \5 W' F. M7 ?
    2.1.4变长参数的宏定义以及_VA_ARGS_227 g3 G2 b0 {; L; d
    2.1.5宽窄字符串的连接23' J7 I8 A/ `1 r* f7 W( W: i
    2.2longlong整型23* ]5 U4 V; ~9 X4 ?  j
    2.3扩展的整型25
    + D& w: ]' {$ l' c2.4宏_cplusplus262 N0 {+ I5 B, f7 f! a! ~/ j' k$ M
    2.5静态断言27
    1 V$ s, H, ~( h& K2.5.1断言:运行时与预处理时27
    3 E+ x" X' p+ e" e6 l. j2.5.2静态断言与static_assert28
    2 c! |) ~) n1 g$ r4 O  M! w8 L- _2.6noexcept修饰符与noexcept操作符320 F) j& v- Y- q
    2.7快速初始化成员变量36" U9 Z6 ?" Z2 s  B
    2.8非静态成员的sizeof39
    0 q" J6 z" [- D0 |# |2.9扩展的friend语法409 C; f6 q) J- c  m3 o! z; V
    2.10final/override控制44( }! T( ?6 O- Y* {
    2.11模板函数的默认模板参数48
    ! c3 w3 ^4 B8 R9 I4 v  s1 S. J2.12外部模板50, l, U1 j; I( h5 ], H
    2.12.1为什么需要外部模板50# M- r2 g7 l5 w: |6 B
    2.12.2显式的实例化与外部模板的声明52
    " ~% q: h  s" G; |0 H7 Z. }7 g2.13局部和匿名类型作模板实参54! w8 L% e1 c- s! L3 V
    2.14本章小结55
    ! a" q; {' ]6 H+ y' \第3章通用为本,专用为末570 b" K, {4 H4 w% e
    3.1继承构造函数571 D; v; c% e& o9 S* X! O
    3.2委派构造函数628 W& D5 Q7 ?0 i
    3.3右值引用:移动语义和完美转发68" v% q) m8 I; U
    3.3.1指针成员与拷贝构造680 z, G$ j$ P5 E2 ~5 @1 f/ M' d
    3.3.2移动语义69
    : ~) v. a, o7 U3.3.3左值、右值与右值引用75* ~! r; P! P  o3 [0 a. ?+ r
    3.3.4std:move:强制转化为右值809 C) g; {. }, i4 o0 T3 X
    3.3.5移动语义的一些其他问题82# Q* f# L, h! l: v
    3.3.6完美转发85
    5 d5 N0 u& K& }1 p& i3.4显式转换操作符89( I2 ^( W3 s' h+ ^/ n+ I
    3.5列表初始化92
    / Q# x/ H7 z! S+ z( x5 f3.5.1初始化列表92
    9 F7 e( t& W8 p. l3.5.2防止类型收窄96
    % S* A! ~7 d! {  r3 Y3.6POD类型98" D- c# U/ B6 f0 U
    3.7非受限联合体106( ]/ o; e$ ~$ f8 m5 G( h4 h
    3.8用户自定义字面量110
    & R7 O6 s# r$ C1 g3.9内联名字空间1136 S' j3 @! H) g8 y9 g4 I( {
    3.10模板的别名118
    3 Y, Y; w; B8 y4 ~5 L  O3.11一般化的SFINEA规则119
    . L. M+ @9 I! i/ h( x. `3.12本章小结121
    + b( |' `' r# o* S( {* @- @3 a第4章新手易学,老兵易用123
    9 s% n: Z+ w% B0 k4 N. {4 T5 r4.1右尖括号>的改进123
    ) I" {+ g' X* b  |5 E4.2auto类型推导124; ]' Q4 }# D% t' p8 H
    4.2.1静态类型、动态类型与类型推导1243 w: M# F9 K8 ^& C6 N  Q
    4.2.2auto的优势126
    6 x8 t. \. K: A+ x* R$ ^4.2.3auto的使用细则1304 W6 ?, J2 j: B7 s( z
    4.3decltype134, ]# {3 v+ L; S! `+ B
    4.3.1typeid与decltype134
    0 j/ |$ T& r5 ?1 j! l. U4 k. F4.3.2decltype的应用136$ A- B% I# \% p4 a* h; W* B. u
    4.3.3decltype推导四规则140" C$ F1 Q6 f+ O- ]9 F1 Z' b6 N
    4.3.4cv限制符的继承与冗余的符号143. m. q: f) g: u# s  p/ `" }* F* i/ ^
    4.4追踪返回类型145
    + c  m$ l+ T0 |8 W; p; y/ d4.4.1追踪返回类型的引入145
    & d: [) F. S% ^  ~8 J5 W$ z* v4.4.2使用追踪返回类型的函数1460 H' W1 H, G5 x
    4.5基于范围的for循环150/ e+ z/ `6 ]( X4 |0 _* L7 i: ~9 C
    4.6本章小结153$ B. n4 }: V+ b  ^
    第5章提高类型安全155' S3 ]  D. L& L" b
    5.1强类型枚举155
    & k2 @, f1 d1 f- i5.1.1枚举:分门别类与数值的名字155
    ) C1 [, u7 A9 r) k! ~5.1.2有缺陷的枚举类型156% I8 P3 h$ y8 d: [! R# \, q  r
    5.1.3强类型枚举以及C++11对原有枚举类型的扩展1602 D5 n; S7 e8 V" C* H
    5.2堆内存管理:智能指针与垃圾回收163, F0 S. X. A7 S7 Z. F9 b% i
    5.2.1显式内存管理163
    0 `& d: ]5 H4 z+ N5 L5.2.2C++11的智能指针164
    / j/ H* j' E+ l  @4 g7 u* D0 k5.2.3垃圾回收的分类167- H% [+ o6 C) f& W6 F. ^
    5.2.4C++与垃圾回收169) Q, s8 I3 g; Z7 d# F  p
    5.2.5C++11与最小垃圾回收支持170' C# h3 G, J0 F3 |
    5.2.6垃圾回收的兼容性172
    3 }( m3 [4 e! z5.3本章小结173
    1 L, t& Z6 n( Q第6章提高性能及操作硬件的能力174
      i7 L6 J' Z/ a$ K( W. ~6.1常量表达式174" y, F1 o/ ]: u7 P# l
    6.1.1运行时常量性与编译时常量性174/ V% _- q( [; y. c
    6.1.2常量表达式函数176
    # j6 ]! A9 c& J5 {  L6.1.3常量表达式值178
    ' g! u5 E0 v1 Q6.1.4常量表达式的其他应用1805 _: L, r1 T5 k/ r$ F, L' v
    6.2变长模板183
    3 V% ~0 s3 |' M$ k2 P6.2.1变长函数和变长的模板参数1838 j% F' q: |5 ~4 Y, x. f
    6.2.2变长模板:模板参数包和函数参数包185
      ~5 H2 T& X7 f" [4 }6.2.3变长模板:进阶189' f9 a+ n2 W* G) ?5 Y
    6.3原子类型与原子操作196
    & @3 C( e# j. `6.3.1并行编程、多线程与C++11196: J8 c: @* z4 ]6 r
    6.3.2原子操作与C++11原子类型197
    % k! c- D" M  W; L3 F6.3.3内存模型,顺序一致性与memory_order2031 v! m1 V2 J. ^, ~
    6.4线程局部存储214
    0 m  Q- g5 N* m. k6.5快速退出:quick_exit与at_quick_exit216
    + {/ J. b9 t% y1 z6.6本章小结219% v3 j% s% O/ Y$ J4 C5 \0 P8 b2 j
    第7章为改变思考方式而改变220" e$ \7 N9 ?& N$ c# l6 l
    7.1指针空值—nullptr220
    + j+ |) Z9 \+ ~7.1.1指针空值:从0到NULL,再到nullptr2204 e$ o/ F7 |2 j& [+ l
    7.1.2nullptr和nullptr_t223
    ! _* U9 h1 J5 o) x1 v7 y7.1.3一些关于nullptr规则的讨论225
    5 j+ v1 N' E% v* \+ w7 e7.2默认函数的控制227
    % W4 S& b0 c. J0 F7.2.1类与默认函数227
    5 F6 q# ]: B+ A/ s+ `1 b, T  ?7.2.2“=default”与“=deleted”230+ O. ?- |7 q: Z* ~8 U
    7.3lambda函数234/ V. I; [8 T: M9 N& {1 d5 `& Y% H
    7.3.1lambda的一些历史234
    # z6 f. D/ @; U4 P! q7.3.2C++11中的lambda函数235# @# |  _7 t& T
    7.3.3lambda与仿函数238
    1 \9 ?. O* b, H6 P7.3.4lambda的基础使用240/ A7 A; q: j( b  V
    7.3.5关于lambda的一些问题及有趣的实验243
    ! D! g& @/ i5 S. v7.3.6lambda与STL2471 a* i3 i; M3 l8 a) b
    7.3.7更多的一些关于lambda的讨论254
    9 W" w5 N- |; }4 ?* w7.4本章小结256
    , u/ D% D- \7 c0 E# f% h第8章融入实际应用258
    4 S8 h" E9 V- i( Z' b+ ~8.1对齐支持258; k" U! s0 _7 P# ~
    8.1.1数据对齐258
      ?( u, g( n# k4 Q8.1.2C++11的alignof和alignas261
    6 E& Q! T- C% V5 p9 m, P0 O2 [2 ]8.2通用属性267
    5 o# w  }% l  _% M; l% c1 R! V. t3 ?8.2.1语言扩展到通用属性267. c$ y* B" H) f' d! F
    8.2.2C++11的通用属性2686 r9 q1 @& |  d8 Q( r# O8 i: L
    8.2.3预定义的通用属性270
    / n6 o% U1 S5 K7 k7 l9 k. [8.3Unicode支持274
    3 w1 |) K/ o/ S+ n% _( w- }$ }8.3.1字符集、编码和Unicode2744 `; l* e, A& o& N! t" B9 Y  ]
    8.3.2C++11中的Unicode支持276
    - w; n/ j3 e. p# r" I8.3.3关于Unicode的库支持280
    % h6 D( u5 E+ e( Q4 C) y8.4原生字符串字面量284
    & ^* k# q* ^9 |8 a0 R8.5本章小结286
    & Q/ Q1 C$ f2 l& ^; x! b" u8 x附录AC++11对其他标准的不兼容项目287
    : B4 {( T7 T4 L1 T4 F( T附录B弃用的特性294
    6 E: f1 \- A6 V4 }' b附录C编译器支持301
    " Y/ s7 N" G4 q附录D相关资源304- K7 v0 o9 Z3 b0 a+ V, }

    % a, G5 B2 y4 Z$ K3 `* W. Q
    - h1 g) Z) c% w8 m封面
    ' w$ \5 @3 h3 ^- a4 l- G 1.jpg
    $ M( s' {) [& ^6 d0 r  N: Z4 g: u4 ?( ~5 U( c
    截图- r( y! X7 I# R. X# ]
    2.jpg
    ) D3 I  z- P! s, E) h4 r
    游客,如果您要查看本帖隐藏内容请回复
    ! m( }$ V* [; {, v

    $ x2 R2 f. f) C$ F) \" N
    % _& b9 Y0 ?7 y+ G# v
    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-9-4 21:01 , Processed in 0.479683 second(s), 108 queries .

    回顶部