QQ登录

只需要一步,快速开始

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

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

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

377

主题

148

听众

6031

积分

升级  20.62%

  • 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 编辑 " p  t! C6 }7 _, y$ ?. o

    ( W9 d  u" X$ B- e& \内容简介
    # `+ g1 m8 U6 Z4 K《深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。; o- [4 i/ t' _/ z3 W
    《深入理解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的相关资源。
    , ?# \, ^; ~8 |3 G  X5 l( R) i3 z7 {0 {9 O
    编辑推荐$ V6 R' g8 ]6 u; D
    《深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。2 H& a) }" D4 Y' x3 F/ f) Y5 D) i' U

    ; |2 p- [3 a' P作者简介  S. q4 X* J$ _1 K0 F9 k
    作者:(加拿大)Michael Wong IBM XL编译器中国开发团队
    4 C" |, ~/ K3 K) @- n) ~5 D. J+ `. Z- \- O: b' G
    Michael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。
    + D% U" x  x7 c* OMichael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。2 ?4 I6 S- \0 z/ _) x
    早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。
    0 A% i) t8 k6 u& j6 D/ g; iIBM 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新特性的开发工作。
    : J/ a! i+ t3 D; u0 s" x) R
    2 z6 U$ k- u- L目录免责声明$ D$ w# L- G; A& ^
    序0 ^- {( r) X! n* v7 [: p5 y" v
    前言
    8 g( T5 \4 A+ ]( G第1章新标准的诞生1! \5 I7 H7 s1 H0 {2 m4 n6 ]1 _
    1.1曙光:C++11标准的诞生1
    " C. |. W+ e3 o# J" I. J* D1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1
    ! ~( \$ I. N+ K2 L# o0 Y: a1.1.2什么是C++11/C++0x2
    + t1 w, Y: O2 V9 u3 f2 B% k+ d1.1.3新C++语言的设计目标3
    ! m; q) t7 Q; o, K1.2今时今日的C++5/ ]- G% q9 A( f; J. [! Y) z% I, z
    1.2.1C++的江湖地位5. T6 N% L3 `; Q4 e& m5 x( h
    1.2.2C++11语言变化的领域5
    5 _" m3 m5 O- o/ a/ I1.3C++11特性的分类7
    . Z/ [) S) Z3 e) t- _. o1.4C++特性一览111 J; B2 q( E3 Y3 r/ [. U7 e
    1.4.1稳定性与兼容性之间的抉择110 y. }( W  `* a) R# A/ e7 N" A, P2 y6 l
    1.4.2更倾向于使用库而不是扩展语言来实现特性12
    ( V1 b. Z6 J4 ?- t0 w" [1.4.3更倾向于通用的而不是特殊的手段来实现特性13
    ' S+ R9 ~! @. y- j/ T7 v* v# A1.4.4专家新手一概支持13+ H% F( s5 O. M8 j7 Z; C5 n# k
    1.4.5增强类型的安全性14
    1 h0 n5 W" e4 a; y; y/ P1.4.6与硬件紧密合作14
    4 X' P% X' t5 {& m1.4.7开发能够改变人们思维方式的特性15
    $ j6 n$ k4 x- k" s! `' S- V1.4.8融入编程现实16
    5 H5 M1 L9 s$ ~+ E: H5 ~2 @  N7 I1.5本书的约定17$ B) s- o4 v% k- h
    1.5.1关于一些术语的翻译17
    + Q/ |, y. W' o' Q1.5.2关于代码中的注释17/ [+ \6 j% O5 Y) {
    1.5.3关于本书中的代码示例与实验平台18
    5 D# f* \" m# Z- u第2章保证稳定性和兼容性199 l; s' [- f4 z; O8 `7 A
    2.1保持与C99兼容19
    " ~% Y1 o# S% L, H. N2.1.1预定义宏195 l* T* D0 D. M, d5 R
    2.1.2_func_预定义标识符204 T! _$ j' y/ [$ @, ]- Q5 w% T3 U
    2.1.3_Pragma操作符22
    " N+ A" z9 V' \) b2.1.4变长参数的宏定义以及_VA_ARGS_224 t* S' m$ B0 ^" E$ Z6 A
    2.1.5宽窄字符串的连接237 b! E7 V# ]7 z! ~9 S0 M- e- b
    2.2longlong整型23" u/ r. s0 H, ?4 X* l
    2.3扩展的整型25
    1 o; T* l! R9 G% [2 M8 m& f2.4宏_cplusplus26
    4 d5 h0 z" N) X; j5 @; j1 `  v2.5静态断言27$ h0 {0 n0 e+ i$ s+ P4 t
    2.5.1断言:运行时与预处理时27
    7 B4 ~) w+ W# C9 ]5 g2.5.2静态断言与static_assert28, n; c4 A' e* j7 }& [$ q% ?* P- O# j
    2.6noexcept修饰符与noexcept操作符32
    0 z! K  Z* g5 Y2.7快速初始化成员变量36
    ) y6 F6 u  ?6 m1 x  A% q2.8非静态成员的sizeof39
    5 \, [& v3 w9 w: S2.9扩展的friend语法40
    8 m9 A0 m7 W+ }, {0 m( c7 Z! h+ l2.10final/override控制44
    : \. r# q  C  q& V( s( Q2.11模板函数的默认模板参数48
    * g: g2 u! U2 j& T" l1 g2.12外部模板50
    ( w" X, Y6 N) R$ N2 x* x3 T2.12.1为什么需要外部模板50; o2 f" E- D& Z
    2.12.2显式的实例化与外部模板的声明52* U2 ^  B0 ~+ p/ c& J; h' g: g
    2.13局部和匿名类型作模板实参54
    ) {0 f9 |6 I$ L: f) G( w2 n, ]2.14本章小结55
    - z, }' ^+ D3 M第3章通用为本,专用为末57
    6 r8 ~* I5 O4 U, ^# }" a! S( b3.1继承构造函数570 n! A* X5 J; y& I+ @6 |1 w+ ^0 f8 Q
    3.2委派构造函数62! t/ }. O7 T, s; y0 @/ [
    3.3右值引用:移动语义和完美转发68/ O# E# [$ Y" V/ A9 ]& u/ h
    3.3.1指针成员与拷贝构造68# y  R' c3 j6 |$ x) @: e+ V* H- A
    3.3.2移动语义69/ I+ f* G1 `7 L: T' h
    3.3.3左值、右值与右值引用75- b8 a, A; l' \: G/ M5 {
    3.3.4std:move:强制转化为右值804 n& w; c3 A( @2 `+ A& v0 ]
    3.3.5移动语义的一些其他问题82  @6 A& k) c. S4 ]# ]' Z
    3.3.6完美转发85$ a& p1 I$ s: l: s3 i8 X" B* ^
    3.4显式转换操作符898 ~" q+ @9 @1 A* `" L, a
    3.5列表初始化92& P8 f4 y. D5 H& h
    3.5.1初始化列表926 q5 H0 j# S: w
    3.5.2防止类型收窄96  z% U! a: T) S, o; J2 f7 t5 z
    3.6POD类型98
    $ K0 B$ e2 U7 @  F- F' ]3.7非受限联合体106
    2 Q, G4 t' j9 X9 e0 K: n3.8用户自定义字面量110
    5 x& O- f8 b* E& p3.9内联名字空间113
    # n, b& h  U' I6 N3.10模板的别名1189 W, N, R9 L" o. K4 a
    3.11一般化的SFINEA规则119
    * @& l$ N5 a# X# `3.12本章小结1214 T: v% O. [; G) f0 H5 N
    第4章新手易学,老兵易用123
    0 Q* e1 G1 `% t: O0 t6 q* z4.1右尖括号>的改进123% U+ R2 p; F! H& \: l% M* t
    4.2auto类型推导124
    6 k1 o4 O+ y9 u* _, |0 P2 M" w4.2.1静态类型、动态类型与类型推导124% k% }9 t& R; P- \  r% I/ J' y
    4.2.2auto的优势1266 K' V6 F0 G  x/ T
    4.2.3auto的使用细则130' X5 E, ~9 b& T; t9 @
    4.3decltype1340 r. N  t+ }1 {- ?
    4.3.1typeid与decltype134* h+ j( p; p: B& R7 T
    4.3.2decltype的应用136$ w$ e4 v$ K1 V
    4.3.3decltype推导四规则140
    ' h! e5 j/ w9 P) m9 v( K& S4.3.4cv限制符的继承与冗余的符号143
    $ d3 x* a$ S; y% {# E4.4追踪返回类型145( L5 R& s0 r# X% z! o3 U
    4.4.1追踪返回类型的引入145: w/ X0 ~! \/ e7 }/ [
    4.4.2使用追踪返回类型的函数1462 G# r  m' E" g1 C8 |  N" l
    4.5基于范围的for循环1506 A. ^" k, h" p& d/ m- Q) s9 ~
    4.6本章小结153
    2 H' f/ o: h6 i% j第5章提高类型安全1552 E4 J9 i8 N9 F' A2 y( ~) x$ n! f
    5.1强类型枚举1554 G1 E/ E* i: b# B# E7 r# Z$ |
    5.1.1枚举:分门别类与数值的名字1555 @( }4 q) A7 r  j
    5.1.2有缺陷的枚举类型156& f7 t/ g& V  B  h! x* g  c2 J* F
    5.1.3强类型枚举以及C++11对原有枚举类型的扩展160
    2 }* u" z% h6 M2 f% ^+ }  V5.2堆内存管理:智能指针与垃圾回收163/ c+ n! f; n0 Y0 V- |+ ]
    5.2.1显式内存管理163
    % p2 s; k, Y# o) p9 @' N  V5.2.2C++11的智能指针164/ d5 p# Z2 D% e* \4 @# e% U
    5.2.3垃圾回收的分类167
    ! Z) D5 y  m* g+ Z7 F5.2.4C++与垃圾回收169
      k" N" ^  x) H& k# I) b: H5.2.5C++11与最小垃圾回收支持170
    6 O7 ?% y$ F  Y% m+ M5.2.6垃圾回收的兼容性172) r( }2 F) U" [' L% s2 P2 C8 h* }
    5.3本章小结173% ]! W/ f' j2 I+ d! L( |7 L* d& l
    第6章提高性能及操作硬件的能力1740 Z* f7 \; D: c7 U9 j
    6.1常量表达式174
      t( v+ _& x/ ^6.1.1运行时常量性与编译时常量性174
    6 q* w8 C$ _0 w. ~- V1 m! v6.1.2常量表达式函数176- Y# s; r2 o; |  O, R
    6.1.3常量表达式值178
    7 {, e8 ]& U. q9 W3 N2 D- C. M6.1.4常量表达式的其他应用180# [4 H$ r! n0 S' N
    6.2变长模板1836 w" Q6 |+ D) T8 m# K) `: u2 F9 ?
    6.2.1变长函数和变长的模板参数183
    $ Z: h/ o1 J! W6 y6.2.2变长模板:模板参数包和函数参数包1852 }" @5 |1 [4 O6 J1 |( h" g' v" E
    6.2.3变长模板:进阶189
    : l% O; i% s% `6.3原子类型与原子操作1961 i' I$ H3 v  d9 q
    6.3.1并行编程、多线程与C++11196, A/ H8 ]' o" J. R& Z4 J
    6.3.2原子操作与C++11原子类型197
    9 {; H, v# u1 L5 H, l- ^. U3 Q6.3.3内存模型,顺序一致性与memory_order203
    & k, E5 z  z6 r0 j& b3 J8 \6.4线程局部存储214
    : B) \+ ^, o" B2 `+ c+ e6.5快速退出:quick_exit与at_quick_exit2164 i) S1 _# A6 }
    6.6本章小结219
    ) @. k5 h# ~8 A( e8 Z" Z6 x  @第7章为改变思考方式而改变220" e$ [) h+ G. ^% j8 b, x6 z
    7.1指针空值—nullptr220
    ) ?  ^0 @. u6 q* Y0 C7.1.1指针空值:从0到NULL,再到nullptr220' T; g5 \" o7 K! L) j
    7.1.2nullptr和nullptr_t2233 l# M# u  X- R! K# d
    7.1.3一些关于nullptr规则的讨论2252 f+ T2 v& m0 w( A  x
    7.2默认函数的控制227, O5 B# V" q5 y0 a& A9 A3 B- a1 \
    7.2.1类与默认函数2272 ]2 f8 {  w, T' z
    7.2.2“=default”与“=deleted”230
    ) [9 d1 q2 q0 s) A/ t$ Y7.3lambda函数234
    + u/ {$ Y: ^. \4 E7.3.1lambda的一些历史2340 A( `2 x: ^+ j
    7.3.2C++11中的lambda函数235, U  u0 u* Q& D8 M6 t* q
    7.3.3lambda与仿函数238) a: ^& L9 w5 A2 N' T. f
    7.3.4lambda的基础使用240" g& H5 S8 r/ x4 ?' _
    7.3.5关于lambda的一些问题及有趣的实验243
    1 w2 z  G! c: ?/ U7.3.6lambda与STL247
    : ?. C  u5 P% T" R' ~1 [: ~# l7.3.7更多的一些关于lambda的讨论2546 h2 ?: A; Q* E! g
    7.4本章小结256- F5 I7 ~( C' ?; Q
    第8章融入实际应用258
    , d6 v5 V& X. n1 I5 A, D& ?5 w8.1对齐支持258% h! _' _. l6 h. s, m0 d# v
    8.1.1数据对齐258
    . U7 g# P9 h  O$ b* {* v' h8.1.2C++11的alignof和alignas261
    * L8 w5 Q; }9 C# O5 C: {* I8.2通用属性2671 u  [/ C$ w) s1 t, L  i9 U
    8.2.1语言扩展到通用属性267
    * a: |# e3 V' V1 c/ s) V6 P: P- _, ^! I8.2.2C++11的通用属性2686 m! L) @/ ^2 i( g5 r
    8.2.3预定义的通用属性270
    : L+ m0 A& D2 B4 a6 m8.3Unicode支持2744 @$ `3 c6 F* L0 t& H
    8.3.1字符集、编码和Unicode274: Y0 @% D8 ~" H& h0 D* i4 Y5 }( I
    8.3.2C++11中的Unicode支持276
    + s) @! g( Q9 S) u  N8.3.3关于Unicode的库支持280+ L7 G% a+ n) |" Z
    8.4原生字符串字面量284) z2 n0 M8 H  i; O# Q6 A, g
    8.5本章小结286* Q3 n7 a" M' m4 t* n
    附录AC++11对其他标准的不兼容项目287
    & s9 N2 V2 `5 a. E附录B弃用的特性2949 B( `& y' f  d& M9 _# H4 p
    附录C编译器支持301) s, I, C- }* q1 k- M9 T
    附录D相关资源304
    6 x' _$ f: F' E
    8 e1 C& q/ Z8 v3 S
    ; e5 U$ B' C% E  Q4 J1 d
    封面3 c5 p' B) F# Z
    1.jpg
    2 N+ J# t# C( u  }8 w* J; k
    2 d$ X0 G2 m: c$ z6 \. l, y8 {5 ^截图
    9 s: m& C) Q! M8 k+ A 2.jpg 5 H6 N* m; m! n
    游客,如果您要查看本帖隐藏内容请回复
    ' m% X# ?0 M( L9 N+ w# p$ D; k8 a! P0 K

    ) G% ?- f; y: P8 A7 W% P" \* i* l3 N* w9 G9 b3 G
    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-10-17 07:44 , Processed in 1.939262 second(s), 108 queries .

    回顶部