QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4977|回复: 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 编辑
    " O# g8 o8 A. @4 |0 t2 X8 I' c, ~# k
    内容简介
    ; P( g- {8 N+ F* X$ o  D深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。
    & K) _* a: ]  E  Q% 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的相关资源。3 x  ~$ _0 y5 F* u" _

    " V: q5 E8 |3 X9 E" ^. ~编辑推荐
    7 N7 J7 R+ y3 V* w' v7 u深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。; X' d! h4 n( r  i$ v# o

    $ ~. Q9 g5 x& y) m2 w作者简介- M) L8 R8 W1 t* ?' v/ X3 t8 Q
    作者:(加拿大)Michael Wong IBM XL编译器中国开发团队
    3 E6 `. \6 H' H, ~0 P* q" d2 g
    ( r, }- I9 W9 `) bMichael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。8 U! V  I% N% B" i( z) \4 @+ b; J
    Michael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。
    # b3 n$ O% {5 D) p( m8 a+ a早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。- l' M% g) z( G6 Y4 n7 l1 l: m
    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新特性的开发工作。  W7 J: r: W* V0 v( `# A7 ?
    % s: `3 u1 l/ Y5 h
    目录免责声明
      X  b- C+ t# i7 ~5 y
    . n" U8 q( H, e' K' }7 \2 ]前言1 L$ K( S# u) ]
    第1章新标准的诞生1  y9 H4 Q8 S( |7 W: Y" x
    1.1曙光:C++11标准的诞生1' ~. a+ k4 U) H2 J# A& ?5 r
    1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1
    4 O2 j- W8 t6 n& u- O# A1.1.2什么是C++11/C++0x2, ?" }" D) t# _+ H
    1.1.3新C++语言的设计目标3
    7 O1 S$ L9 a, t  e. j1.2今时今日的C++5
    4 m. z5 q  q5 C/ O7 E1.2.1C++的江湖地位5+ B3 _! m& t& p; J- z5 S& k+ v
    1.2.2C++11语言变化的领域5" E' S$ A& H5 o% i) m' R
    1.3C++11特性的分类7. o; [4 ?) o( x+ \, P; _& ?8 U
    1.4C++特性一览11
    9 N( U4 K6 i% ~8 g# U1 R1.4.1稳定性与兼容性之间的抉择11
    # f0 Q, Q( K# v& w; ]" e1.4.2更倾向于使用库而不是扩展语言来实现特性121 t1 Z) C* w3 J% C1 B) _
    1.4.3更倾向于通用的而不是特殊的手段来实现特性13
    + S; R" n  O1 A' l- i: u. q5 F1.4.4专家新手一概支持13
    2 r! H6 f8 M) e1.4.5增强类型的安全性14
    0 g& T, }: ^# ~& o' |' @1.4.6与硬件紧密合作14
    / V, \+ v' p# l1.4.7开发能够改变人们思维方式的特性155 P& \4 N- H7 c3 x! k' N% Q
    1.4.8融入编程现实169 X) h5 K+ d5 s; J  C
    1.5本书的约定171 h7 H/ m4 V+ A. J
    1.5.1关于一些术语的翻译174 g  c1 ?1 n9 v: X# g" R! Y2 w; }
    1.5.2关于代码中的注释17; H" g/ I& |! p5 b+ F
    1.5.3关于本书中的代码示例与实验平台18+ s' b1 z  T" f  O# `
    第2章保证稳定性和兼容性19
    6 Z+ ?" d! v# k+ }2.1保持与C99兼容19! P( e) i; q$ ]; b8 P: J5 K# p
    2.1.1预定义宏19: |# D* h5 a  L7 v6 b9 ?
    2.1.2_func_预定义标识符20
    6 W* U1 Z: F. O+ P; }! d' s3 _' w; l2.1.3_Pragma操作符223 h' G3 i0 q% ^
    2.1.4变长参数的宏定义以及_VA_ARGS_22
    4 p/ K# B. L- G' M. c( U4 S+ J2.1.5宽窄字符串的连接234 W1 \( n: v$ Q8 o
    2.2longlong整型23- n1 o* c0 e* |: ^7 y
    2.3扩展的整型259 [7 m# C& Y7 P9 S/ Q( x6 V
    2.4宏_cplusplus26! G: G! R5 c$ j, z) ]! |+ D
    2.5静态断言27+ _- g* u9 w4 ?. y4 R- K3 h
    2.5.1断言:运行时与预处理时27
    " J9 q9 T: Z# n7 `8 t2.5.2静态断言与static_assert28
    6 m1 x2 X- m  `  o, P: T6 l# J2.6noexcept修饰符与noexcept操作符32; B% l. N" W- j, G9 t
    2.7快速初始化成员变量36
    ' m+ M( y( c2 y; R# ^2.8非静态成员的sizeof39' E6 k/ O# l6 d: g4 W  y
    2.9扩展的friend语法40
    1 z# V, I7 ~& z/ y* b2.10final/override控制445 @# x* _7 g8 ?1 I5 d' O
    2.11模板函数的默认模板参数48+ X  V$ C3 a( U) G
    2.12外部模板50( b7 f0 K5 Q* @, i
    2.12.1为什么需要外部模板50
    $ Y  V; ^9 s9 o- ~" B7 ?2.12.2显式的实例化与外部模板的声明52& B& U9 l% s( L+ N. J! s
    2.13局部和匿名类型作模板实参54! Y( ^: n  \8 t1 c& x
    2.14本章小结55
    ' Q: P% w0 W$ J; O/ R! t% v第3章通用为本,专用为末57
    : S' U* m1 Y- {. U& a3.1继承构造函数57" D: e4 K) M9 y
    3.2委派构造函数62$ B, X( o' ?- y* \
    3.3右值引用:移动语义和完美转发68: X' g5 ?: R' T+ o$ n
    3.3.1指针成员与拷贝构造68/ c3 ^( _6 ?, i, m: X% ]
    3.3.2移动语义69# L! z( k; E" Y. y
    3.3.3左值、右值与右值引用75
    % Q& D2 w: Y/ ^1 e" k5 o: M3.3.4std:move:强制转化为右值807 q+ B1 x9 a' m5 g' M. f
    3.3.5移动语义的一些其他问题82) J! N) r1 d; ]' S
    3.3.6完美转发85
    ! L" ?  Y# y4 W; S: L! a4 H3.4显式转换操作符89
    ( ^0 R4 u/ x. u; H4 j$ U" N5 E3.5列表初始化92$ F7 Q8 F0 R8 L* e
    3.5.1初始化列表92
    3 h  c2 q: x# k7 Y& U( Y3.5.2防止类型收窄96! b+ x& Y2 p5 P$ S4 d( I0 U; x" P
    3.6POD类型98: d+ L* N" g# Y3 o4 h# Z
    3.7非受限联合体1061 p$ U' j" U3 c. j9 q. I
    3.8用户自定义字面量110
    $ s+ f; G' m! G' G3.9内联名字空间113
    0 d6 U: X$ B+ N) o3 Q* Q3.10模板的别名118) U, y! u3 A8 c! y1 C$ W5 d
    3.11一般化的SFINEA规则119
    ! @6 l! A7 U1 ^5 E7 }" O7 H3.12本章小结121! F1 }, c8 J1 z3 Z: T6 r
    第4章新手易学,老兵易用123% `! s" X1 l9 _% O, m7 Q- x
    4.1右尖括号>的改进123/ s( w* l: l+ f/ W
    4.2auto类型推导124
    7 K) e/ w; @5 p4 Z4.2.1静态类型、动态类型与类型推导124
    ! i2 q3 N, q7 v2 i4.2.2auto的优势126
    ' U: R) |- R. h- A# J1 P0 a4.2.3auto的使用细则130' {2 P, R+ l2 Y: s" \
    4.3decltype134
    + _: d' o/ [& }" g6 @/ X1 Y  c4.3.1typeid与decltype134  C% s2 k& B1 Z% u: H6 k
    4.3.2decltype的应用136- c% ^( B& w/ Z; L
    4.3.3decltype推导四规则140* L9 J7 q  b& e7 e$ Q8 d/ I$ J$ I5 C- V
    4.3.4cv限制符的继承与冗余的符号1439 S9 n# @" ~. A. Q% f) ?4 E: g/ ?" r
    4.4追踪返回类型1458 C7 o6 s" N! f6 U" f7 J9 A
    4.4.1追踪返回类型的引入145* P. f8 \# Y$ |1 k
    4.4.2使用追踪返回类型的函数146
    9 W3 d' y7 j2 b( Z# d1 v8 J4.5基于范围的for循环1507 i6 [& ~7 O0 B% x2 M
    4.6本章小结153
    1 X. @8 P+ i0 I; R第5章提高类型安全155# [; F  X0 e3 f: l0 p3 A5 k, \
    5.1强类型枚举155
    ' f- R# h; G$ l% t2 F5.1.1枚举:分门别类与数值的名字155
    2 T0 w. v- E9 C$ X+ W5.1.2有缺陷的枚举类型156% |! X( M( x7 j+ p/ P2 I1 ^
    5.1.3强类型枚举以及C++11对原有枚举类型的扩展160( |2 k4 |" P# R) u  k& _
    5.2堆内存管理:智能指针与垃圾回收1636 J, v9 X% l6 @- F. D0 V( o
    5.2.1显式内存管理163# d% j* j" A# j1 w$ A) _
    5.2.2C++11的智能指针1649 `4 m- x" D1 Y+ _
    5.2.3垃圾回收的分类167% a/ }, h: ?5 m0 @9 P( v; k& x1 E# ?  j
    5.2.4C++与垃圾回收169
    3 X0 K3 k7 \9 k3 P5.2.5C++11与最小垃圾回收支持170$ G' H+ ^$ W! K6 m
    5.2.6垃圾回收的兼容性172
    2 Y/ I4 U5 I- k7 D/ D5.3本章小结173
    9 o# F! b% q, k1 l  Z第6章提高性能及操作硬件的能力1744 K( f( `. M' |. f' {3 `
    6.1常量表达式174: d; g* v4 f$ |& l/ b
    6.1.1运行时常量性与编译时常量性1740 p# K2 }$ R) a/ h
    6.1.2常量表达式函数176" K5 g% e1 }% |1 I3 S2 h
    6.1.3常量表达式值178) s/ T$ _, \) }
    6.1.4常量表达式的其他应用180
    9 o# k+ P" H; [6 X6.2变长模板183) W, h( `. `- m; Q
    6.2.1变长函数和变长的模板参数183
      X) p* G1 i0 u" I- C$ i6.2.2变长模板:模板参数包和函数参数包185
    # G; G4 G) t* ]3 ?6.2.3变长模板:进阶189* w; s( M) i! N+ n  J/ k/ M
    6.3原子类型与原子操作196
    " @6 _' {2 H; }* J6.3.1并行编程、多线程与C++111960 d5 `$ f3 a0 G' k
    6.3.2原子操作与C++11原子类型197) y* M6 c3 ~# M& X, Z" x' Q
    6.3.3内存模型,顺序一致性与memory_order203
    9 z2 o. B6 p. }$ n6.4线程局部存储214
    % _: V6 g: d/ s2 ~+ W6.5快速退出:quick_exit与at_quick_exit216. E" u( c8 Z5 M. P8 R' M
    6.6本章小结219; t9 r4 A  @3 n% ]8 k5 l
    第7章为改变思考方式而改变220
    / V4 a# _, }3 G0 c: V; K2 D7.1指针空值—nullptr220# f( R! G' A( M, h, x
    7.1.1指针空值:从0到NULL,再到nullptr220* c# t  x* o" N. k
    7.1.2nullptr和nullptr_t223* \% Z5 Y: r7 Y1 d, e- U$ Y9 B
    7.1.3一些关于nullptr规则的讨论225
    - G4 u' ]6 P+ G# |; h5 O7.2默认函数的控制227
    . O: A5 x9 X+ {1 u) e! |7.2.1类与默认函数227  d1 h2 P8 L+ t, I* Q% S
    7.2.2“=default”与“=deleted”2300 G! M9 W$ I' \, m, D
    7.3lambda函数234  h/ q0 Z/ Q- f9 {0 L4 o9 y
    7.3.1lambda的一些历史2349 {9 @) L- X5 w% W9 h: p. x% Y
    7.3.2C++11中的lambda函数235
    9 f% Y/ J. q5 D2 f7.3.3lambda与仿函数238
    . _: Z# _5 U1 j7.3.4lambda的基础使用240; m; _4 x, g0 O% |
    7.3.5关于lambda的一些问题及有趣的实验243
    $ M$ R6 ^" p3 s% o/ a+ U" i! b7.3.6lambda与STL247
    , Z5 f% o3 M6 {4 f4 y7.3.7更多的一些关于lambda的讨论254
    " j4 O* q$ \; z! k* U$ f7.4本章小结256
    " T/ I, ?+ D* }第8章融入实际应用258
    - L8 k* c2 ]) d5 M4 U+ i4 K8.1对齐支持258
      B2 @, O8 c0 a5 P/ `) s. g+ {8.1.1数据对齐258+ O+ `& Y/ z9 r6 F3 t  F- X$ a
    8.1.2C++11的alignof和alignas261) R' V; ~6 f# ~/ I
    8.2通用属性267+ m; ~6 n4 L" c
    8.2.1语言扩展到通用属性267
    . l1 C# I; u$ X7 \8.2.2C++11的通用属性2688 v' @7 z9 ?" E. s
    8.2.3预定义的通用属性2706 d- |/ f+ u$ l3 k9 s
    8.3Unicode支持274
    / p/ y- O* ?* [: D8.3.1字符集、编码和Unicode274
    2 X9 N: c: @; X% z8.3.2C++11中的Unicode支持276
    - C1 O! O& Q4 ^8.3.3关于Unicode的库支持280
    ; c) _: q$ T2 O0 I* J8.4原生字符串字面量284
    ) d& H5 D) J: Q; v8 G  x0 M8.5本章小结286
    ; x8 r' z- k% L& T4 u8 [' f# x, E附录AC++11对其他标准的不兼容项目2878 q9 `  O/ b0 A' g: Z6 ^1 f9 U1 C
    附录B弃用的特性294! n2 {* j- f2 x2 |3 B
    附录C编译器支持301
    . U/ l  ?: b, T. b& _% |附录D相关资源304: o* g" O4 c2 G1 Q% F7 ]$ Y3 P
    + {1 T  U$ v& i3 Z( x% @
    . ~9 d: N3 Q% M+ C2 M
    封面
    $ V& H" s8 i- A* E! K; k* I# t+ ~ 1.jpg
    4 w# k9 O( m- B
    9 Z# T  ^4 }- I  K- @截图6 D( c0 U- g& t- K9 W5 A
    2.jpg
      r# N6 ?+ R+ E" B
    游客,如果您要查看本帖隐藏内容请回复
    ' F, t# v0 x: w, s7 F$ b. Q

    - s2 a- Z7 X2 L$ `8 u. x6 {/ @3 h9 y
    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-17 06:17 , Processed in 0.410702 second(s), 107 queries .

    回顶部